CPU-Auslastung erhöhen?
-
Ach, man könnte zehn Instanzen starten, die sich dann eben NICHT weiter vermehren (Parametergesteuert), man könnte zwei Instanzen starten (ohne Parameter) und sich dann beenden (ist dann auch irgendwann voll, aber später), man könnte vor dem Start dieser Instanzen 5, 10 oder beliebig Sekunden warten usw. - dann hätte man die Möglichkeit, die Dinger wieder rauszuhauen ...
Auf jeden Fall kriegt man so jeden Kern beschäftigt, darum sollte es in meinem Post gehen.
Und um eine ernsthafte, sinnvolle Aufgabe geht es hier ausdrücklich nicht.
-
Oder als Nutzer startet man einfach das Programm N mal, wobei N == Anzahl der Kerne.
-
Belli schrieb:
Das ist ja der Punkt, da die Systeme heute standardmäßig mehr als einen Kern haben, kriegt man mit nur einem Thread keine 100%ige CPU-Auslastung hin ...
Vorsicht: Mein 2 Kerner bringts auch fertig dabei beide Kerne voll auszulasten. - Sollte nicht so sein, aber er tuts warum auch immer.
-
inflames2k schrieb:
Vorsicht: Mein 2 Kerner
Wahrscheinlich hat man Dich um einen Kern betrogen ...
-
Hab auch son Programm, dass meinen Laptop voll auslastet. Saut mir alle i7-Kerne zu
Und ich sehe nicht, wie das multithreading-mäßig unterwegs sein könnte.
-
Eisflamme schrieb:
Hab auch son Programm, dass meinen Laptop voll auslastet. Saut mir alle i7-Kerne zu
Und ich sehe nicht, wie das multithreading-mäßig unterwegs sein könnte.Wer weis wie viele deiner Daten in verschiedenen Threads an die Vertreiber veräußert werden.

Belli schrieb:
inflames2k schrieb:
Vorsicht: Mein 2 Kerner
Wahrscheinlich hat man Dich um einen Kern betrogen ...
Unwahrscheinlich. - Dann müsste ja das komplette System umgebogen wurden sein. -> Schließlich kann man ja nachprüfen wie viele vorhanden sind.
-
Schade. Kann mir keiner irgendeine lösung sagen, wie ich das machen könnte. Ihr müsst nicht den Quellcode schicken, ich wollte nur wissen was der einfachste Weg dazu ist.
-
Du erstellst so viele Threads wie dir der Windows-Taskmanager CPU-Kerne anzeigt. Dazu benutzt da am besten boost::thread. Die einzelnen Threads haben dann Endlosschleifen.
Hier mal ein Beispiel für Windows:
#include <windows.h> #include <cassert> DWORD WINAPI foo(LPVOID) { while(true) { } } int main() { SYSTEM_INFO sysinfo; GetSystemInfo(&sysinfo); for(int i = 0; i < sysinfo.dwNumberOfProcessors - 1; ++i) { assert(CreateThread(NULL, 0, foo, NULL, 0, NULL)); } foo(NULL); }
-
while(true) new (std::nothrow) int;Das in so vielen Threads wie du Cores hat.
-
Ich glaube es war ein 1Kern Prozessor (Auf der Arbeit).
Werds morgen einmal anschauen.
-
Achso, den Rechner künstlich verlangsamen damit der Chef nen neuen anschafft oder wie?
-
Scorcher24 schrieb:
Achso, den Rechner künstlich verlangsamen damit der Chef nen neuen anschafft oder wie?

Nein ich weiss nicht ob es ein Mehrkernprozessor war.
(Da beim ausführen der Prozessor nicht 100% belastet wurde)Mir ist eigentlich egal auf welchem Rechner ich arbeiten muss.

-
Ja es war ein 2 Kern Prozessor.
-
int main(int argc, char** argv) { while(true) system(argv[0]); }Viel Spaß.
-
Würde auch nur bei 1 Kern Prozessoren funktionieren
-
Hier das ganze mit boost:
#include <iostream> #include <boost/thread.hpp> void foo() { while(true) { } } int main() { for (int i = 0; i < boost::thread::hardware_concurrency() - 1; ++i) { new boost::thread(foo); } foo(); }
-
Wenn Du deinen Rechner wirklich auslasten willst, nutze:
http://3.14.by/en/md5
-
Sheldor schrieb:
Würde auch nur bei 1 Kern Prozessoren funktionieren
Upps, dann eben:
int main(int argc, char** argv) { std::string command(argv[0]); command.append(" &"); while(true) system(command.c_str()); }