CPU Auslastung
-
Hey,
ich habe meinen 3d Renderer, den ich zu Testzwecken soviel rendern lasse dass 2 bis 3 fps rauskommen. Daneben habe ich diese windows miniapp, die die CPU auslastung anzeigt. Da mein Programm noch nicht mehrere Threads nutzt, ist entsprechend nur 1 Kern (von zweien) ausgelastet, allerdings erhalte ich trotz der geringen fps nicht mehr als 50% Kernauslastung.Meine Frage ist, wie kann ich mehr Rechenkraft nutzen? Ich hab schließlich für den ganzen Prozessor bezahlt, nicht die Hälfte
Gibt es möglichkeiten, einem Betriebssystem zu sagen dass der Prozess eine höhere Prioriät im Sinne der Ressourcennutzung bekommen soll, oder sonst eine Möglichkeit den Rechner anständig auszulasten wenn die Kapazitäten auch benötigt werden?
-
Du verwendest nur 1 Thread, also kannst du auch nur 1 CPU auslasten. 1 CPU von 2 Ausgelastet sind 50% Gesamtauslastung. Mehr geht nicht mit nur 1 Thread.
-
Kontrasubjekt schrieb:
Ich hab schließlich für den ganzen Prozessor bezahlt, nicht die Hälfte
Du hast für den Prozessor die Hälfte bezahlt, aber zwei bekommen.
-
Blue-Tiger schrieb:
Du verwendest nur 1 Thread, also kannst du auch nur 1 CPU auslasten. 1 CPU von 2 Ausgelastet sind 50% Gesamtauslastung. Mehr geht nicht mit nur 1 Thread.
Die anzeige sagt das der erste Kern 50% ausgelastet ist, während der zweite unverändert bleibt.
-
Kontrasubjekt schrieb:
Blue-Tiger schrieb:
Du verwendest nur 1 Thread, also kannst du auch nur 1 CPU auslasten. 1 CPU von 2 Ausgelastet sind 50% Gesamtauslastung. Mehr geht nicht mit nur 1 Thread.
Die anzeige sagt das der erste Kern 50% ausgelastet ist, während der zweite unverändert bleibt.
Bist du ganz sicher dass die Anzeige auch nur 1 Kern zeigt und nicht die Gesamtsystemauslastung? Was sagt denn z. B. der Windows-Taskmanager, zeigt der 25% Auslastung oder 50%?
Falls du wirklich nur 50% von einem Kern auslastest:
- hast du ein Sleep irgendwo?
- machst du irgendwo Input/Output (File, Netzwerk) oder hast andere Systemcalls?
-
Blue-Tiger schrieb:
Bist du ganz sicher dass die Anzeige auch nur 1 Kern zeigt und nicht die Gesamtsystemauslastung? Was sagt denn z. B. der Windows-Taskmanager, zeigt der 25% Auslastung oder 50%?
50 zeigt der taskmanager. Ja, ich bin sicher da die Miniapp 2 balken mit prozenten hat.
Bei längerer Laufzeit geht die Auslastung auf 75% hoch, aber die verbliebenen 25% würde ich trotzdem gern holen.- hast du ein Sleep irgendwo?
- machst du irgendwo Input/Output (File, Netzwerk) oder hast andere Systemcalls?Meine eigene anwendung hat kein sleep, aber afaik gibt es ein vsync von der api die ich zum rendern benutze. Geschlafen wird aber normal nicht wenn die framerate unter in meinem Fall 75 ist.
Ansonsten zur Laufzeit kein io.
-
Kontrasubjekt schrieb:
Blue-Tiger schrieb:
Bist du ganz sicher dass die Anzeige auch nur 1 Kern zeigt und nicht die Gesamtsystemauslastung? Was sagt denn z. B. der Windows-Taskmanager, zeigt der 25% Auslastung oder 50%?
50 zeigt der taskmanager.
Wenn der Windows-Taskmanager 50% Auslastung anzeigt, bedeutet das IIRC dass du 50% der Gesamtkapazitaet ausnuetzt, in deinem Fall also einen Core.
So hab ich das zumindest in Erinnerung, aber frag mal wen, der Windows verwendet, bzw. tests mal selbst, indem du ein Programm schreibst, das ganz garantiert einen ganzen Core zu 100% auslastet (ganz einfach eine leere Endlosschleife in eine main-funktion und ohne Optimierungen kompilieren).
-
BTW: Im Windows Task Manager: Systemleistung->Ansicht->CPU-Verlauf->Ein Diagramm pro CPU. Dann siehst du die Auslastung beider Kerne. Dafür braucht man imho keine spezielle App.
Gruß
Don06
-
Als ichs heut mal getestet hab ging es auf 100%.
Komisch.
Wenn der Windows-Taskmanager 50% Auslastung anzeigt, bedeutet das IIRC dass du 50% der Gesamtkapazitaet ausnuetzt, in deinem Fall also einen Core.
Scheint so. Gestern zeigte der TM 50 genauso wie heute. Lag vielleicht an der Miniapp.
@don: Klar, die ist nur als gimmick.