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)
Antwort
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.
(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
- 1. Ertrag nur einmal pro Iteration
- 2. Erlaube nur 1 Wert pro Tastendruck
- 3. jQuery: Zeige nur einen Artikel pro Klick
- 4. Ansible Variablen nur X-mal pro Host
- 5. Ein Popout nur einmal pro Benutzer anzeigen
- 6. Zeitquantum pro Prozess pro Thread
- 7. Accelerometer Daten auf Windows Surface Pro mit Qt C++?
- 8. Windows Wallpaper: nicht nur BMPs?
- 9. Analysis Services Nur Windows-Authentifizierung
- 10. Wie viele Synchronisationsobjekte können pro Prozess und pro Computer in Windows verwendet werden?
- 11. Warum `ls` mehrere Dateien pro Zeile auflisten, aber` ls pipe/redirect` nur 1 Datei pro Zeile?
- 12. Programmatisch pro-process Disk-io-Statistiken auf Windows bekommen?
- 13. Aktivieren von IIS 8.0 (Windows 8 Pro) Dynamische Komprimierung
- 14. Ist Windows 10 Pro auf MSDN-Abonnenten-Download verfügbar?
- 15. Bluetooth api für Oberfläche pro 3 Windows 8.1
- 16. Monitor CPU-Auslastung pro Thread auf Windows-Mobilgerät
- 17. Programmgesteuertes Abrufen von Netzwerkstatistiken pro Prozess unter Windows?
- 18. Wie die CPU-Nutzung pro Thread auf Windows (Win32)
- 19. Wie Windows-Laptop als externer Monitor für Macbook Pro verwenden?
- 20. C# pinvoking CredWrite Problem unter Windows XP Pro
- 21. Wie kann ich nur einen Datensatz pro Person zurückgeben?
- 22. Nur eine gleichzeitige Anmeldung pro Benutzer in Asp.net
- 23. Warum ändert nur eine Aggregat-Instanz pro Transaktion?
- 24. Mausrad Scroll Ereignis Feuer nur einmal pro Scroll-Sitzung
- 25. Browser-Benachrichtigung nur einmal für alle geöffneten Registerkarten pro Website
- 26. lädt Javascript nur einmal pro Benutzer/Browser-Sitzung
- 27. Beschränken Sie sich auf nur 3 Bestellungen pro 30 Tage
- 28. Wie Java nur eine Instanz einer Enum pro JVM sichert
- 29. Lassen Sie den Firefox-Erweiterungscode nur einmal pro Sitzung laufen.
- 30. Warum wird meine Funktion nur einmal pro Seite geladen?
_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