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

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

Ich führe also ein hochintensives (CPU/GPU) Echtzeitprogramm aus. Während der normalen Ausführung friert plötzlich alles für 1-4 Sekunden ein. Ich habe im Hintergrund „Process Explorer“ geöffnet, um Einblicke zu gewinnen und vielleicht etwas zu identifizieren. So sehen die CPU/GPU-Diagramme aus, wenn ich sie zeitlich ausrichte:

Bildbeschreibung hier eingeben

Beachten Sie die 4 deutlichen Einbrüche bei CPU/GPU. Sie können sehen, dass es von einer Art positiver CPU/GPU-Auslastung auf fast Null geht. Diese Einbrüche im Diagramm stimmen mit dem Zeitpunkt überein, an dem das Echtzeitprogramm plötzlich einfriert.

Wie finde ich heraus, was diese plötzlichen Abfälle verursacht?

HINWEIS: Wenn Sie mit der Maus über das Diagramm fahren, wird Ihnen die Uhrzeit für die Stelle, an der sich Ihr Cursor befindet, auf die Sekunde genau angezeigt.Vielleicht könnte diese Mouseover-Funktion irgendwie hilfreich sein (was wäre beispielsweise, wenn Sie alle 100 ms ein Protokoll aller Prozesse hätten).

BEARBEITEN:

Das Echtzeitprogramm ist ein Videospiel, und daher kann ich mir keine Instrumente ansehen, während das Videospiel läuft. Ich brauche eine Lösung, mit der man irgendwie in die Vergangenheit zurückblicken kann, um zu sehen, was passiert ist, als die Verlangsamung auftrat.

BEARBEITEN:

RE - Daten aufzeichnen vs. Echtzeitmonitor verwenden: Der Windows Performance Recorder zeichnet aus irgendeinem Grund nicht das auf, was ich erwarte. Ich bin also dazu übergegangen, „perfmon“ zu verwenden und dann dessen „Ressourcenmonitor“ zu öffnen.

RE - Einrichten, damit ich den Monitor in Echtzeit anzeigen kann: Im Videospiel stelle ich es auf Zuschauen ein und versetze das Videospiel dann in den „Fenstermodus“, sodass ich die Echtzeitanzeige des Ressourcenmonitors anzeigen kann.

Da ich nun in Semi-Echtzeit abrechnen kann (nur einmal pro Sekunde ... wie kommt man auf mehr als einmal pro Sekunde?), habe ich angefangen, mir die verschiedenen Echtzeit-Datenanzeigen anzusehen.

Kommen wir zur Ursache: Mir ist ein starker Zusammenhang zwischen hoher Festplatten-E/A und geringer CPU-Auslastung aufgefallen (was sich auch durch das Einfrieren des Spiels zeigt).Wie verwenden Sie den Ressourcenmonitor, um herauszufinden, wer all diese störenden Festplatten-E/A-Vorgänge durchführt?

Antwort1

Speichernutzung und Festplatten-E/A sind die ersten Dinge, die ich mir ansehen würde.

Versuchen Sie, Hintergrundprogramme wie Antiviren-/Anti-Malware-Programme, alle Aktualisierungsprogramme wie Windows Update usw. zu deaktivieren.Durchführen eines sauberen Neustartsist der beste Weg, um festzustellen, ob Dienste oder Programme von Drittanbietern dieses Problem verursachen.

Sie sollten auch den Speicher überwachen. Windows könnte den Speicher im Hintergrund auslagern, wenn der Speicher knapp wird.

Ist Ihnen aufgefallen, dass dies zu bestimmten Zeiten geschieht, beispielsweise wenn Sie die Waffe wechseln oder ein neuer Ton abgespielt wird? Es kann sein, dass eine Spielressource aus dem Speicher ausgelagert oder nicht geladen wurde und das Spiel die Ressource von der Festplatte laden muss. Je nach Spiel können Sie möglicherweise einige der Einstellungen verringern, um die Qualität, Quantität oder Vielfalt der Spielressourcen zu verringern.

Antwort2

VersuchenFancyCachemit"durchschnittliche Schreibmenge berechnen".

Es scheint möglich zu sein, den Festplattenzugriff zu verteilen, um Spitzen zu vermeiden.

verwandte Informationen