CPU-Auslastung senken.
Übersicht

![]() |
DerHaseBetreff: CPU-Auslastung senken. |
![]() Antworten mit Zitat ![]() |
---|---|---|
Da ich einen Laptop hab, der bei 100% CPU Auslastung sehr viel unangenehm warme Luft auf die Pflanzen meiner Freundin bläßt, hab ich ein wenig rumprobiert, wie man dieses Problem lösen kann. Mit einem Delay wird die CPU zwar entlastet doch es führt ja leider zu sehr komischen ungenauen Ergebnissen. In meinen Code wird nur der erste Teil der Wartezeit mit Delay gewartet, danach gibt es eine Pufferzone die diese komische Ungenauigkeit ausgleicht. Hier der Code:
Code: [AUSKLAPPEN] Graphics 640,480,0,2
;Ungefähre gewünschte Framezahl hier angeben! fps# = 66.666 ;Hier wird umgerechnet wie lange ein Schleifendurchgang bei gewünschter Framezahl ;dauert. fpsWait# = 1000 / fps While Not KeyHit(1) ;Zeitmessung am Anfang des Schleifendurchlaufes startT# = MilliSecs() ;Hier kommen alle Sachen hin die während eines Schleifendurchlaufs passieren sollen. For t = 0 To 50 Oval xpos+ Rand(0,620),Rand(0,460),20,20,1 Next ;Wenn genügend Zeit vorhanden ist wird zuerst mit "Delay" gewartet und danach den Rest ;der Zeit mit einer Schleife. Diese Schleife dient als Pufferzone für das ungenaue "Delay". sleepingtime# = (15 - (MilliSecs() - startT#))/1.5 If sleepingtime > 2 Then Delay sleepingtime Repeat : Until startT# + fpsWait# <= MilliSecs() Flip 0 : Cls ;Wer will kann sich das ganze in Zahlen anzeigen lassen: endT# = MilliSecs() Text 30,30, "Frames pro Sekunde:" + 1000 / (endT - startT) Text 30,60, "Mit Delay gewartete Millisekunden" + sleepingtime# Wend |
||
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
schon nett, aber mit nur delay erziehle ich wesentlich bessere ergebnisse bei mir. Man kann ja das delay berechnen, aber mit dieser methode hab ich ne cpu auslastung von 75%
mit delay 10 (also etwa 100 fps) hab ich nur 30% |
||
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer: AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t Gewinner: BP Code Compo #2 Π=3.141592653589793238...<--- und das aus dem kopf ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
![]() |
BlitzcoderNewsposter |
![]() Antworten mit Zitat ![]() |
---|---|---|
Am einfachsten ist es Vsync einzuschalten. Wenn ein Spiel Standardmäßig 200FPS hat, und mit Vsync sind es 60-100(je nach Monitor), wird die CPU auch schon sehr entlastet.
MfG Blitzcoder |
||
P4 3 Ghz@3,55Ghz|GF 6600GT 256MB|Samsung 80GB | 2x Samsung 160GB|2048MB DDR-400 RAM|6 Mbit Flatrate | Logitech G15 | Samsung 225BW-TFT | Ubuntu Gutsy Linux | Windows Vista | Desktop | Blog | CollIDE | Worklog
________________ |°°°°°°°°°°°°°°||'""|""\__,_ |______________ ||__ |__|__ |) |(@) |(@)"""**|(@)(@)****|(@) |
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
also ich find diese variante nett (mal vor einer Zeit gecodet)
Code: [AUSKLAPPEN] SetBuffer BackBuffer()
max_fps#=120 fps_time#=1000./max_fps# While Not KeyDown(1) While MilliSecs()<nextfps#:Delay 1:Wend:nextfps#=MilliSecs()+fps_time# Color 0,0,0 Rect 0,0,GraphicsWidth(),GraphicsHeight() fps#=(19.*fps#+1000./(MilliSecs()-ofps))/20.:ofps=MilliSecs() Color 255,255,255 Text 1,1,fps# CopyRect 0,0,GraphicsWidth(),GraphicsHeight(),0,0,BackBuffer(),FrontBuffer() Wend 0% CPU Auslastung |
||
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer: AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t Gewinner: BP Code Compo #2 Π=3.141592653589793238...<--- und das aus dem kopf ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
![]() |
Last Anquav Hero |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dein Code ist absoluter Müll, bei mir hat der 100% cpuauslastung... probiers mal mit b+ dort ist das mit events sehr gut geregelt. ausserdem wenn man ein spiel hat isses ja wohl egal dass es grad 100% cpu schluckt, denn wenn man zockt macht man ja wohl schlecht noch was andres am pc? | ||
![]() |
DerHase |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Steptiger: Nur mit "Delay" hab ich immer komische Timing Probleme, poste mal Deine Variante, bei dem es richtig funktioniert. Bei dem Code den Du unten gepostet hast, hab ich 100% Auslastung.
@Blitzcoder: Welche Blitz Version hast Du? Wenn ich VSync einschalte bleibt bei mir die CPU Auslastung trotzdem auf 100%. @Last Anquav Hero: Welchen Code meintest Du mit "absolutem Müll"? Ich senke deshalb die CPU Auslastung, weil es bei Laptops sehr nervig ist wenn der Lüfter angeht, ausserdem wenn Du in einem Zug ohne Steckdose sitzt wirst Du Dich über die Entlastung freuen. Ausserdem hat es paar Laptops mit Intel Chips die bei 100% CPU Auslastung so warm werden, dass sie sich abschalten. |
||
![]() |
BlitzcoderNewsposter |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich hab die neuste, 1.96
MfG Blitzcoder |
||
P4 3 Ghz@3,55Ghz|GF 6600GT 256MB|Samsung 80GB | 2x Samsung 160GB|2048MB DDR-400 RAM|6 Mbit Flatrate | Logitech G15 | Samsung 225BW-TFT | Ubuntu Gutsy Linux | Windows Vista | Desktop | Blog | CollIDE | Worklog
________________ |°°°°°°°°°°°°°°||'""|""\__,_ |______________ ||__ |__|__ |) |(@) |(@)"""**|(@)(@)****|(@) |
![]() |
DerHase |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Blitzcoder: Hmm, das ist komisch, bei allen anderen bleibt es auf 100%, kannst mal nen Code posten?
@All: Man kann die 1.5 in der Zeile sleepingtime Zeile durch einen kleineren Wert der über 1 ist ersetzen, so bekommt man noch ein bisschen weniger Auslastung. |
||
![]() |
BlitzcoderNewsposter |
![]() Antworten mit Zitat ![]() |
---|---|---|
Irgendwas halt:
Code: [AUSKLAPPEN] graphics 1024,768,0,2 setbuffer backbuffer() seedrnd millisecs() while not keydown(1) a=rand(800) b=rand(600) c=rand(100) d=rand(100) oval a,b,c,d flip 0 cls wend end So hab ich 100%, bzw. bei mir 50% wegen P4 HT. Wenn ma da ein flip 1 drauß macht, ist es viel weniger. MfG Blitzcoder |
||
P4 3 Ghz@3,55Ghz|GF 6600GT 256MB|Samsung 80GB | 2x Samsung 160GB|2048MB DDR-400 RAM|6 Mbit Flatrate | Logitech G15 | Samsung 225BW-TFT | Ubuntu Gutsy Linux | Windows Vista | Desktop | Blog | CollIDE | Worklog
________________ |°°°°°°°°°°°°°°||'""|""\__,_ |______________ ||__ |__|__ |) |(@) |(@)"""**|(@)(@)****|(@) |
![]() |
DerHase |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bei mir hat Flip 0 und Flip 1 100% CPU Auslastung. | ||
![]() |
aMulSieger des Minimalist Compo 01/13 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das leigt daran, das die Vertikale Synkronisation wohl selbst sehr viel Rechenleistung braucht und das dein Prozessor eben nicht schnell genug ist ![]() (WENN man die CPU-Last unbedingt senken möchte, ist Delay allerdings die bessere Variante, weil der Delay-Befehl 0 Leistung braucht. Wo wir gerade dabei sind, Waittimer ist übrigens auch der größte Schwachsinn den es gibt, so viel Leistung wie das Ding braucht ![]() MfG |
||
Panic Pong - ultimate action mashup of Pong and Breakout <= aktives Spiele-Projekt, Downloads mit vielen bunten Farben!
advASCIIdraw - the advanced ASCII art program <= aktives nicht-Spiele-Projekt, must-have für ASCII/roguelike/dungeon-crawler fans! Alter BB-Kram: ThroughTheAsteroidBelt - mit Quelltext! | RGB-Palette in 32²-Textur / Farbige Beleuchtung mit Dot3 | Stereoskopie in Blitz3D | Teleport-Animation Screensaver |
![]() |
Kleiner satan |
![]() Antworten mit Zitat ![]() |
---|---|---|
du kannst auch einfach den laptop wo anders hinstellen dann trifft die luft nichtmehr die pflanzen^^ | ||
![]() |
DerHase |
![]() Antworten mit Zitat ![]() |
---|---|---|
Danke für Eure konstruktive Kritik! Ich werde bei der neuen Version all das bedenken und etwas machen, das nicht funktioniert. Vielen Dank nochmal an alle. | ||
![]() |
Last Anquav Hero |
![]() Antworten mit Zitat ![]() |
---|---|---|
Huch! Auch wenn etwas spät: Ich meinte den Code von Steptiger ![]() |
||
Mr Hopp |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Poste dann dochmal die neue Version, wenn du so weit bist, das Problem beschäftigt mich auch sehr ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group