Computernutzer der ersten Stunde dürfte diese Erfahrung aus der „guten alten Zeit“ noch in schmerzlicher Erinnerung sein: Nach dem Klick auf das gewünschte Programm, wechselt der Mauszeiger zur munter vor sich herdrehenden Sanduhr. Kurz darauf macht die Festplatte mit Rattergeräuschen auf sich aufmerksam bis sich schließlich, nach einer gefühlten Ewigkeit, die Benutzeroberfläche in ihrer ganzen Pracht zeigt.
Dank technologischem Fortschritt in Form immer schnellerer CPUs und vor allem Festplatten (ein hoch auf die SSD), sind heutzutage die meisten Programme innerhalb weniger Augenblick geöffnet und bereit ihren Dienst zu verrichten. Doch hin und wieder gibt es ein paar nervige Ausreißer, die in alte Muster verfallen und die Geduld des (mittlerweile ungeduldigen) Benutzers auf die Probe stellen. Letztens habe ich das Problem langer Startzeiten mit dem Programm Chessbase erlebt. Gekauft, um sich mit dem Thema Schach wieder ernsthafter zu beschäftigen, wollte mich das Programm bei den meisten Starts mit schier endlos langen Ladezeiten von bis zu einer Minute an den Rand der Verzweiflung bringen. Rational ließ sich das nicht erklären, denn auf dem Startbildschirm werden lediglich Verknüpfungen zu Partiedatenbanken angezeigt. Da Chessbase löblicherweise das Programm kontinuierlich auf dem laufenden Stand hält, schwang die Hoffnung mit, dass der lange Programmstart irgendwann behoben sein sollte. Leider passierte das nicht, vielleicht, weil Schachspieler geduldige und leidensfähige Genossen sind, die bereit sind, mit langen Startzeiten zu leben. Oder aber, auf meinem Rechner ist irgendetwas anders als beim Rest der Welt. Normalerweise starte ich Chessbase so selten, dass die langsamen Starts erträglich waren, doch die vielen Vorbereitungen auf der Jugend WM sorgten dafür, dass mein Geduldsfaden riss, weswegen ich das Problem genauer unter die Lupe nehmen wollte, um zumindest einen hilfreichen Bug Report an ChessBase zu senden.
Mittlerweile ist für mich Perfview zum Mittel der Wahl bei allen möglichen Problemen unter Windows geworden. Eigentlich entworfen als Performance Analyse Tool, wo es konkurrenzlos ist, kann Perfview als Schweizer Taschenmesser auch für Reverse Engineering, Einarbeitung in neue Code Basen und generelles Bugfixing verwendet werden. Folgende Aufzeichnungseinstellungen reichen, um sich ein erstes Bild über die meisten Probleme zu machen, wobei die Änderung von den Standardeinstellungen hervorgehoben sind.
Circular MB legt den Ring Puffer für Aufzeichnungen fest, mit einem kleinen Wert riskiert man, wichtige Daten wegen Überschreibung zu verlieren.
Thread Time zeichnet Kontextwechsel (z.B. warten auf Semaphoren) von Threads inklusive deren Call Stacks auf.
File I/O und Registry zeichnen Datei und Registryzugriffe im Programm auf.
Zu den Standardeinstellungen zählt auch die Aufzeichnung der Stacks aller rechnenden Threads im Millisekunden Takt. Diese Events finden wir unter Windows Kernel/PerfInfo/Sample. Wenn wir die lange Startzeit von ChessBase 17 mit den obigen Einstelllungen aufzeichnen, sehen wir bereits in den Stacks der rechnenden Threads, dass die Applikation zwischen Sekunde zwei und 24 der Aufzeichnung für 22 Sekunden hängt!
In so einem Fall, setze ich den Filter auf den besagten Zeitraum und schaue mir alle Ressourcen an, die Chessbase währenddessen anfasst. Schon der Blick auf die Dateien ist bereits hoch verdächtig.
Hier sehen wir kurz vor dem Hänger einen Zugriff auf eine Netzwerkadresse, die zu meinem alten Server gehört, der nur selten im (lokalen) Netz verfügbar ist. Auf Reisen, wo man Chessbase typischerweise benutzt, natürlich nie… Der Windows Explorer zeigt unter der Netzwerkadresse ein fehlerhaft eingebundenes Netzlaufwerk an (mit rotem Kreuz). Ein Klick darauf lässt auch den Windows Explorer hängen :). Somit ist die Ursache des Problems ein unglückliches Windows Verhalten bei eingebundenen Netzlaufwerken. Eine Trennung des Netzlaufwerks, lässt das Problem des langen Chessbase Starts sofort verschwinden. Außerdem muss ich mit Freude feststellen, dass ein anderes Problem und zwar das Hängen bei der Umbenennungen von Ordnern jetzt nicht mehr auftritt. Übrigens tritt das Hängen nicht auf, wenn man die Netzwerkadresse auch wirklich als Netzwerkadresse einbindet anstelle von einem Netzlaufwerk.
Wieder etwas gelernt.
Schreibe einen Kommentar