Geschwindigkeit, die stark variiert, wenn derselbe Code auf Intel i7 ausgeführt wird
Ich habe eine Intel i7-5500U-CPU (2,40 GHz), und ich verwende derzeit ein paar fast gleiche Codes (mit c codiert) hintereinander. Ich schaute auf den Task-Manager (und mein Programm) und bemerkte, dass etwas Bizzare passiert.
Ich muss wahrscheinlich zuerst erwähnen, dass hier mehr CPU-Auslastung in allen Fällen zu einer schnelleren Berechnung führt. Etwa 30% der CPU-Nutzung führen zu einer etwa viermal schnelleren Berechnung als etwa 9%. Wenn es um 9% zu laufen beginnt, bleibt es bis zum Ende auf diesem Wert. Gleich mit 30%.
Zum Beispiel lief gestern ein Code mit etwa 30% CPU-Auslastung, aber heute habe ich nur etwa 9% verwendet. 9% waren das übliche, ich hatte fast 30% 0-mal.
Dies bedeutet, dass auf meinem Laptop ein Code, der 4x-Geschwindigkeit als üblich ausführen kann, die meiste Zeit nicht so schnell läuft, übrigens auf dem Laptop einer anderen Person, er läuft immer 4x-Geschwindigkeit.
Ich finde den vierfachen Geschwindigkeitsunterschied im selben System sehr seltsam, vor allem, wenn in beiden Fällen nur das Programm und der Editor im Hintergrund liefen.
Was ich also tun möchte, ist, dass ich bei jeder Ausführung des Codes schnell Berechnungen durchführen möchte. Ist das möglich?
Das Erhöhen der Priorität über den Task-Manager hat nicht funktioniert. Auch die Einstellung 'Echtzeit' hat nichts geändert.
Das Programm ist Single-Threading und ist nicht E / A-intensiv.
Wenn weitere Informationen benötigt werden, teilen Sie mir dies bitte mit. Ich werde es hier schreiben. Natürlich außer Sachen wie "post den ganzen Code".
Vielen Dank für Ihre Zeit im Voraus.
UPDATE: Ich habe heute morgen den Task-Manager angesehen und etwas Bizzare passiert. Kurz nachdem ich die Maus bewegt hatte und der Bildschirm wieder angezeigt wurde (Sie wissen, wie sich der Bildschirmschoner und der schwarze Bildschirm nach etwa 15 Minuten zeigen?), Sank die CPU-Auslastung schnell von etwa 30% auf etwa 9% (Taskmanager) war auch die ganze Zeit) und als ich mir den Fortschritt anschaute, war er ein paar Mal schneller gelaufen, als er hätte sein sollen. Es hätte ungefähr 17 Stunden gedauert, um den Vorgang abzuschließen, aber es waren nur 10 Stunden vergangen, und das Programm hatte mehr als 5/6 der Arbeit geleistet.
UPDATE2: Ja, ich weiß, dass die CPU-Auslastung kein guter Weg ist, um die Leistung zu messen. In diesem Fall lief der Code jedoch in allen Fällen, in denen die CPU-Auslastung 30% betrug, einige Male schneller als bei einer CPU-Auslastung von 9%. Ich verwende die Ausdrücke "ungefähr 30%" und "ungefähr 9%", um nur zu sagen, dass die Geschwindigkeit unterschiedlich war und auf dem Task-Manager sichtbar war. Wenn Sie bezweifeln, dass es mit 30% schneller lief, müsste ich Ihnen sagen, dass der Code immer etwa 4000 Sekunden lief, wenn er 30% zeigte, und immer etwa 16.000, wenn er 9% zeigte. Ja. jedes Mal.
UPDATE3: Ich habe diesen Code im Laufe eines Monats ausgeführt (mit einigen sehr einfachen Bearbeitungsschritten, wie zum Beispiel dem Ändern einiger Variablen), und ich habe meinen Laptop im Laufe des Monats mehrmals neu gestartet.
UPDATE4: Der Code läuft jedes Mal mit der gleichen Geschwindigkeit (und 4-mal schneller als meine "normale" Geschwindigkeit (9%)) auf dem Intel i5 meines Kollegen (4. Generation M).
0 Antworten auf die Frage
Verwandte Probleme
-
8
Sollte ich 32 oder 64 Bit für Linux wählen?
-
12
CPU-Kerne: Je mehr, desto besser?
-
5
Warum sollte mein Computer starten und plötzlich ausschalten?
-
2
Maximale CPU-Temperatur für Core 2 Duo E6400
-
4
Wie schnell ist jeder Kern in einem Dual-Core-Prozessor?
-
7
Kann ich die CPU-Geschwindigkeit meines MacBook im Akkubetrieb reduzieren?
-
2
Bietet der Intel i7 eine echte Verbesserung gegenüber seinen Vorgängern?
-
4
Kann ein 32-Bit-Betriebssystem in einem 64-Bit-Prozessor ausgeführt werden?
-
3
Ist es möglich, eine Intel Q8400-CPU in meinem ASUS P5N-EM HDMI-Mobo zu verwenden?
-
3
Sinkt durch das Überlappen einer CPU / eines Kühlkörpers tatsächlich die Temperatur?