2011-01-14 15 views
1

Ich arbeite an einem Windows-Spiel und während des Renderns, einige Computer erleben intermittierende Pausen ("hitches" mangels eines besseren Begriffes). Beim Profilieren erscheinen sie an scheinbar zufälligen Stellen im Code. Schließlich bemerkte ich, dass nicht nur mein Prozess betroffen war, sondern (scheinbar) jeder Prozess auf dem System. Alle Threads in meiner Anwendung hängen auf einmal zusammen. Die CPU-Auslastung sinkt während dieser Probleme und es scheint, als ob die meisten Prozesse keinen Fortschritt machen.Welche Dinge können dazu führen, dass ein ganzes System für 100-1000 Millisekunden hängen bleibt?

Das führt mich zu der Annahme, dass dies ein Betriebssystem- oder Treiberproblem sein kann, aber es tritt nur während des Spiels auf (und nur auf einigen Systemen). Welche Operationen das Betriebssystem ausführen könnte, würde erfordern, dass der Kernel alle Benutzer-Threads pausiert und blockiert. Eine Art von I/O? Zuerst dachte ich an Paging, aber mein Eindruck ist, dass das nur einen einzigen Prozess beeinflussen würde, nein?

Einige Systeme im Einsatz: Windows, DirectX (3d), nVidia-Karten (nicht bekannt, ob Replikate auf ATI), für überlappende io mit

Streaming
+2

Nicht programmierungsbezogen in irgendeiner Form, Form oder Form -> Off-Topic -> gehört zu http: // superuser.com –

Antwort

1

Wenn Sie eine Menge von Grafiken im Einsatz haben, kann es Paging Grafiken seines Speicher in die Auslagerungsdatei.

Oder vielleicht der Strom wird auf der Festplatte gepuffert?

Es ist sehenswert, wenn die Probleme mit der Disk-Aktivitäts-LED des PCs übereinstimmen.

1

Starke Verwendung von Memory-Mapped IO. Dies beinhaltet natürlich die System-Auslagerungsdatei, kann aber auch Benutzeranwendungen enthalten, die mmio stark verwenden (gcc für einen)