100% cpu auslastung ausmerzen
Übersicht

ThorianBetreff: 100% cpu auslastung ausmerzen |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hallo alle zusammen
habe gestern begonnen, mir blitz anzusehen, und habe nun ein problem: meine funktion lastet die cpu zu 100% aus, was natürlich ganz und gar nicht gut ist hier mal der code: Code: [AUSKLAPPEN] Graphics 640, 480, 32, 2
SetBuffer BackBuffer() Cls imgDraw ("test.jpg", 0, 0) bereich (0, 74, 452, 479) Function imgDraw (img$, x, y) ;bild auf screen bringen img = LoadImage (img$) If img = 0 Then Text 100, 100, "Fehler" Else DrawImage (img, x, y) EndIf End Function ; hier soll einfach nur überprüft werden, ob in einen bestimmten bereich geklickt wurde, und dann ein text erscheinen Function bereich (minX, maxX, minY, maxY) While Not KeyHit (1) mausX = mausX + MouseXSpeed () mausY = mausY + MouseYSpeed () If MouseHit (1) = 1 And mausX >= minX And mausX <= maxX And mausY >= minY And mausY <= maxY Then imgDraw ("test", 0, 0) Text 10, 40, mausY End If Flip Wend End Function WaitKey End funktioniert auch alles. nur eben mit voller auslastung. habe aber nicht wirklich eine idee, wie ich die funktion umbauen kann, sodass es einwandfrei geht. denkanstöße würden mir sehr helfen, danke auf jeden fall |
||
![]() |
Hummelpups |
![]() Antworten mit Zitat ![]() |
---|---|---|
->CreateTimer
->WaitTimer www.blitzbase.de |
||
blucode - webdesign - Ressource - NetzwerkSim
BlitzBasic 2D - BlitzMax - MaxGUI - Monkey - BlitzPlus |
![]() |
Jan_Ehemaliger Admin |
![]() Antworten mit Zitat ![]() |
---|---|---|
hm, ist anundfür sich normal, wenn man volle hintergrund berechtigungen macht.
Sinnvoll ist das nur mit Blitz Plus oder Blitzmax möglich, BB ist ebend für Spiele Programmierung. verscuhe Delay 5 in jede schleife zu machen. |
||
between angels and insects |
Thorian |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
timer hab ich schon versucht, aber nicht geschafft. irgendwie komm ich damit nicht klar. könntest du mir bitte zeigen, wie ich den timer richtig einsetzte?
danke |
||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] repeat
Eine Möglichkeit msecs=millisecs() ; Berechnung, Ausgabe, tralala flip 0 waittimer(gewuenschte_frames,millisecs()-msecs) until keyhit(1) end Function WaitTimer(frames,time) wait=1000/frames-time If wait>0 Delay wait Return wait End Function ![]() Sehr viel besser für Spiele geeignet ist allerdings Frameunabhängig zu programmieren. In aller Regel stört sich bei einem Spiel niemand dran wenn die CPU auf Vollgas gehalten wird ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
Thorian |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
danke Hubis, genau sowas hab ich gebraucht!
läuft jetzt bei 10% und funktioniert problemlos danke an alle |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Zitat: Sehr viel besser für Spiele geeignet ist allerdings Frameunabhängig zu programmieren. In aller Regel stört sich bei einem Spiel niemand dran wenn die CPU auf Vollgas gehalten wird ![]() Doch schon. Immer mehr Leute schalten neuerdings den Kopf ein bevor sie den PC einschalten. Speziell auf Notebooks ist es katastrophal wenn Programmierer unfähig sind, nur die Ressourcen zu nutzen, die sie brauchen. Das konnte UT schon vor Jahren, sehe nicht warums auf einmal nimmer gehen sollte. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nun gut, von Notebooks mal abgesehen ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
du kannst dir auch beim Desktop min. 60 Watt sparen wenn das Programm intelligent programmiert ist, da die CPU (zumindest AMD mit Cool'n'Quiet sowie alles mit Core) sich runtertaktet bis auf ihr Minimum oder gar Kerne in den Sleep zustand versetzt. | ||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
x-pressive |
![]() Antworten mit Zitat ![]() |
---|---|---|
Delay gibt meiner Erfahrung nach mehr Ressourcen frei, als WaitTimer. Bei meinem derzeitigen Projekt habe ich z.B. folgende Auslastungen:
Normal (ungebremst): 1500 FPS - 100% Delay 1: 400 FPS - ca. 45% WaitTimer: 60 FPS - ca.75% ![]() WaitTimer gibt in dem Fall weniger Ressourcen ab, als Delay, obwohl das Programm nur mit einem Bruchteil an FPS läuft. Delay ist aber wiederrum nur bei hohen Frameraten sinnvoll, also bei schnellen Rechnern, wobei dann langsamere (z.B. Laptops) immer noch eine extreme Auslastung haben. Das Problem der CPU-Auslastung ist mit Blitz gar nicht so leicht zu lösen, weil man sein Programm ja nicht in mehrere Prozesse oder Threads aufteilen kann. Man hat ja eigentlich nur die Wahl ALLE Programmteile langsamer laufen zu lassen, oder KEINE. Man muss also immer das Programm komplett anhalten (WaitTimer, Delay), um CPU-Ressourcen abzugeben. Einige Programmteile nur alle xx MilliSecs aufzurufen bringt deshalb ja auch nichts. Eine richtige Lösung habe ich dafür auch noch nicht gefunden ![]() |
||
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL |
super_castle |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Thorian , nimm purebasic. das ist glaube ich besser für deine lösung.
b3d ist für deine aufgabe zu complex. b3d ist halt für 3d da. ich kenne kein programm dieser art was resourssen verschenken tut die durch waittimer hervorgerufen werden. das wäre perlen vor die säue schmeissen. mdfg castle |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group