2012-04-13 6 views
1

Ich bin ein Amateur-Programmierer, also bitte tragen Sie mit mir. Ich bin dabei, ein Plug-In für ein Spiel (für Windows OS) zu schreiben, das während des Spiels im Hintergrund läuft. Da das Plugin Threads erzeugt, deren Ausführung CPU-intensiv ist und die Ausführung des Spiels auf verschiedenen CPU-Kernen sehr unterschiedlich sein kann, konnte das Plugin nur auf PCs mit mehreren Kernen ausgeführt werden, die eine niedrigere Auslastung als ein bestimmtes Limit haben. Ich habe herausgefunden, wie man die CPU-Last pro Kern überwacht, aber ich habe noch eine Frage: Sollte das Plugin die Threads den Kernen mit der niedrigsten Last zuordnen oder kann ich das System für mich behandeln lassen? Wäre 1. Lösung besser für die Leistung des Spiels?Thread-Zuweisung pro CPU-Kerne (nur Windows)

+0

_Pretty please_ ** nicht versuchen, CPU-Kernlasten, Speicherlasten, Thread-Lasten ** usw. ** von Hand **, aber überlasse es dem Betriebssystem, ** sogar ** - und es ist irgendwie wichtig - ** wenn Sie Ihre scheinbar bessere Lösung finden **. Der Grund, warum ich dich auffordere, so zu handeln, ist folgender: _Erinnere dich, wenn mehr als ein Programm das macht! _ Stell dir vor, dass sie ** ihr Verhalten je nach der Last des Systems ständig ändern ** und sie enden * * mit viel CPU-Zeit **, um sich an eine sich ständig ändernde Systemlast anzupassen. Siehst du, warum du das nicht tun solltest? – mg30rg

Antwort

0

Wenn Sie Ihren Code für Windows in Visual Studio 2010 entwickeln, dann schlage ich vor, Sie auf Nebenlaufzeit suchen verfügbar. Concurrency Runtime in Visual C++ 2010

Sollte der Griff Plugin die Fäden an die Kerne mit der niedrigsten Last Zuteilung oder ich kann das System handhaben, dass für mich lassen?

Sie können das System für Sie behandeln lassen, wenn Sie das System richtig entwerfen können. Außerdem muss sich Ihr Code nicht basierend auf der Anzahl der Kerne ändern, da diese Details von der Laufzeit erfasst werden und die Anzahl der erstellten Threads proportional zur Anzahl der Kerne ist.

+0

(s) er nicht auf "kann", aber ** sollte diese Art der Ressourcenverwaltung zu dem zugrunde liegenden System aus dem folgenden Grund verlassen: Stellen Sie sich vor, wenn mehr als ein Programm dies tut! Stellen Sie sich vor, dass sie ständig ihr Verhalten entsprechend der Auslastung des Systems ändern und dass sie viel CPU-Zeit benötigen, um sich an eine sich ständig ändernde Systemlast anzupassen. Siehst du, warum du das nicht tun solltest? – mg30rg

Verwandte Themen