Was verursacht ein plötzliches Einfrieren während der Ausführung eines Echtzeitprogramms?


4

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:

Bildbeschreibung hier eingeben

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?


1
Bitte stöbern Sie in meinem Beitrag . Beachten Sie, dass eine Echtzeitanwendung möglicherweise von anderen Diensten / Anwendungen unterbrochen wird, deren Ausführung noch aussteht. Aber eines der von mir vorgeschlagenen Tools sollte es Ihnen ermöglichen, herauszufinden, welche Dienste / Anwendungen Sie stören ...
Tamara Wijsman

Einige der Werkzeuge, die Sie anzeigen, zeigen nur die "aktuelle" Zeit an. Aber dann erwähnen Sie "Windows Performance Recorder", mit dem Sie einen Blick zurück in die Zeit werfen können, als die Verlangsamung auftrat. Sieht vielversprechend aus.
Trevor Boyd Smith

Zu Ihrer Information: Diese spezielle Anwendung ist ein Videospiel. Das macht es schwierig, da Sie Ihre Instrumentierung nicht gleichzeitig mit dem Ausführen des Videospiels ansehen können. Daher brauche ich etwas, das es mir ermöglicht, nach der Tatsache zu schauen.
Trevor Boyd Smith

Dann ist Windows Performance Recorder der richtige Weg.
Tamara Wijsman

Wahrscheinlich Festplattenzugriff ...
Ben Voigt

Antworten:


2

Speicherauslastung und Festplatten-E / A sind die ersten Dinge, die ich mir ansehen möchte.

Deaktivieren Sie Hintergrundprogramme wie Antiviren- / Anti-Malware-Programme, Updater-Programme wie Windows Update usw. Durch einen sauberen Neustart können Sie am besten feststellen, ob Dienste oder Programme von Drittanbietern dieses Problem verursachen.

Sie sollten auch den Arbeitsspeicher überwachen - Windows kann den Arbeitsspeicher im Hintergrund auslagern, wenn der Arbeitsspeicher knapp wird.

Ist Ihnen aufgefallen, dass es zu bestimmten Zeiten passiert - zum Beispiel wenn Sie die Waffe wechseln oder wenn ein neuer Sound abgespielt wird? Es kann vorkommen, dass eine Spielressource aus dem Speicher ausgelagert oder nicht geladen wurde und das Spiel die Ressource von der Festplatte laden muss. Je nach Spiel sind Sie möglicherweise in der Lage, einige Einstellungen zu verringern, um die Qualität, Quantität oder Vielfalt der spielinternen Ressourcen zu verringern.


Update : Ich habe Ihre Antwort akzeptiert, weil es die beste Antwort zu sein schien. ¶ Ich habe mir eine neue Grafikkarte mit mehr Speicher gekauft. Das plötzliche Gefrieren verschwand. Ich denke, Sie hatten Recht, dass es etwas mit der Speichernutzung und der Festplatten-E / A gab ... aber leider habe ich die genaue Ursache nie herausgefunden. ¶ Alles, was ich sagen kann, ist, dass das Problem mit einer neuen Grafikkarte mit mehr Speicher behoben wurde.
Trevor Boyd Smith

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.