Daher starte ich ein hochintensives (CPU / GPU) Echtzeitprogramm. Während der normalen Ausführung friert plötzlich alles für 1-4 Sekunden ein. Ich habe "Process Explorer" im Hintergrund geöffnet, um Einblicke zu gewinnen und möglicherweise etwas zu identifizieren. So sehen die CPU / GPU-Grafiken aus, wenn ich sie zeitlich ausrichte:
Beachten Sie die 4 deutlichen Einbrüche in der CPU / GPU. Sie können sehen, dass es von einer positiven CPU- / GPU-Auslastung auf fast Null geht. Diese Tropfen im Diagramm richten sich danach, wann das Echtzeitprogramm plötzlich einfriert.
Wie finde ich heraus, was diese plötzlichen Stürze verursacht?
HINWEIS: Wenn Sie mit der Maus über das Diagramm fahren, wird die sekundengenaue Uhrzeit angezeigt, zu der sich der Cursor befindet. Vielleicht könnte diese Mouse-Over-Funktion in irgendeiner Weise hilfreich sein (z. B. wenn Sie alle 100 ms ein Protokoll aller Prozesse hätten).
BEARBEITEN:
Das Echtzeit-Programm ist ein Videospiel, daher kann ich keine Instrumentierung ansehen, während das Videospiel läuft. Ich brauche eine Lösung, mit der Sie irgendwie in die Vergangenheit schauen können, um zu sehen, was passiert ist, als die Verlangsamung eingetreten ist.
BEARBEITEN:
RE - Aufzeichnen von Daten im Vergleich zur Verwendung eines Echtzeitmonitors: Aus irgendeinem Grund zeichnet der Windows-Leistungsrecorder nicht auf, was ich von ihm erwarte. Also habe ich auf "perfmon" umgestellt und dann den "Ressourcenmonitor" geöffnet.
RE - Einrichten, damit ich den Echtzeitmonitor anzeigen kann: Im Videospiel habe ich das Zuschauen eingestellt und dann das Videospiel in den Fenstermodus versetzt, damit ich die Echtzeitanzeige des Ressourcenmonitors anzeigen kann.
Jetzt, da ich halb-Echtzeit bekommen kann (nur einmal pro Sekunde ... wie bekommst du mehr als einmal pro Sekunde?), Fing ich an, die verschiedenen Echtzeit-Datenauslesungen zu betrachten.
Zur Ursache: Ich bemerkte eine starke Korrelation zwischen hohem Platten-IO und niedriger CPU-Auslastung (was sich auch durch das Einfrieren im Spiel bemerkbar macht). Wie können Sie mithilfe der Ressourcenüberwachung herausfinden, wer all diese fehlerhaften Datenträger-E / A-Vorgänge ausführt?