AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Mein Spiel -> CPU Auslastung 100%
Thema durchsuchen
Ansicht
Themen-Optionen

Mein Spiel -> CPU Auslastung 100%

Ein Thema von Neutral General · begonnen am 12. Sep 2005 · letzter Beitrag vom 14. Sep 2005
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#11

Re: Mein Spiel -> CPU Auslastung 100%

  Alt 12. Sep 2005, 13:43
Wie schon geschrieben es klappt
Hätt ich echt nicht gedacht... danke
Michael
  Mit Zitat antworten Zitat
Benutzerbild von Mr_T
Mr_T

Registriert seit: 7. Jun 2002
Ort: Eilsum
136 Beiträge
 
Delphi 2005 Personal
 
#12

Re: Mein Spiel -> CPU Auslastung 100%

  Alt 14. Sep 2005, 17:00
Also das mit dem Timer ist nun echt keine Lösung ^^
Denn: der Timer an sich auf einer 1er Einstellung reduziert die Maximale FPS-Zahl auf 1000 ... da kaum ein Spiel so schnell läuft bedeutet also die Timer-Einstellung von 1: Rendere so schnell du halt kannst - Wahrscheinlich die vernümpftigste Lösung und mit dme OnIdle-Event von Delphi nahezu gleichzusetzen - dieses brasucht auch immer 100% CPU-Power, weil halt so viel und so schnell gerendert wird, wie es halt gerade geht.
Das Sleep(10) bewirkt nun aber, dass nach jedme Rendern erstmal 10 Millisekunden Pause gemacht werden, bevor deine Anwendung weiterarbeitet ... eher friert sie für die Zeit ein udn der Prozie arbeitet solange an anderen Prozessen, deshlab hat er nicht 100% Last .... Aber: damit reduziert man die Maximale FPS-Zahl auf 100 (bei der Idealen Hardware, die keien Zeit zum Rendern bräuchte) ... auf langsamen Maschienen hingegen wird dieses zum Overkill ... man stelle sich das Szenario vor, das die Application mit ca 20 Frames pro Sekunde läuft ... in der Regel noch so eben akzeptabel. Nun aber bewirkt man mit dem Sleep(10), das statt 50 Ms 60 gebraucht werden für einen Frame, also die FPS-Zahl auf ca 18 sinkt ... mag nicht viel klingen, ist aber ärgerlich ^^
Also: Leute, lasst doch eure Anwendungen so schnell Rendern wie sie wollen ... und wenn ihr noch nebenher was machen wollt, denn nehmt keinen Timer oder ähnlichen Spielkram, sondern das OnIdle-Event, da immer denn nur was machen soll, wenn alle anderen Prozesse nichts zu tun haben ...
Mein neuer, 13 Teiliger Open GL - Kurs (Samples in Delphi):
www.dcw-group.net
Neu! Ein großer Teil der Demos nach Kylix übersetzt!
Neu! Teil 2b: Initialisierung von OpenGL unter Kylix ist fertig!
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#13

Re: Mein Spiel -> CPU Auslastung 100%

  Alt 14. Sep 2005, 17:14
@Mr_T: Du hast vollkommen recht, ein sleep(10) ist absolut suboptimal - trotzdem wird ein OnIdle mit Done:=false immer 100% Prozessorlast zur folge haben.

Somit also zwei Möglichkeiten: Done:=true - es wird erst wieder gerendert, wenn sich irgendwas verändert hat. Das ist gut, wenn im Render-ereignis absolut keine Berechnungen(timebased movement etc.) vorkommen. Wenn diese also alle ausserhalb passieren, hat man die ideale frame rate und theoretisch dürfte es nicht ruckeln. Für ein kleines 3d-fenster z.B. in einem Tool sollte das reichen.

oder

Die Lösung mit dem Timer. Damit(TTimer.Interval) kann man effektiv die maximale Framerate festlegen.

Für ein Hochleistungs-3d-Spiel wird aber so gut wie immer die einfache OnIdle-mit-done:=false-lösung die einfachste und richtigste bleiben. Wiederum anders sieht es bei Laptops aus - hier sollte man immer zumindest per config-datei eine möglichkeit zur begrenzung anbieten.

Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz