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?
Antworten:
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.
quelle
Probieren Sie FancyCache mit "Mittelung des Schreibbetrags" aus .
Es scheint in der Lage zu sein, den Festplattenzugriff zu verteilen, um Bursts zu vermeiden.
quelle