![]() |
OpemGL - Prozessorlast senken
Hi ;)
Ich bin grade dabei mich mal ordentlich in OpenGL einzuarbeiten, folge dabei ![]() Da ich einen Timer verhindern möchte, weiche ich auf Variante 2 (Idle-Variante) aus. Allerdings steht dort, dass es 100% Prozessorlast verbrät (Was ein Timer am Ende wohl auch machen würde) und man es mit einem sleep(1) grade mal auf 80% senken kann. Gibt es denn keine andere Variante um die Last unten zu halten? air |
Re: OpemGL - Prozessorlast senken
ähm,
wie wär's mit einem timer? ;) ich würde da noch einen thread vorschlagen. in der JVCL gibt's sogar eine komponente, die einen timer mithilfe eines threads realisiert (TJvThreadTimer). aenogym |
Re: OpemGL - Prozessorlast senken
Hi,
du machst in der Idle-Variante ja nichts anderes, als in eine Endlosschleife zu gehen. diese wird immer mit voller Priorität abgehandelt. Dadurch wirst du auch keine Last von unter 100% erreichen können. Die gesamte Rechenzeit, die dein Prozess bekommt wird genau in diese Schleife gesteckt. Es sollte dich aber was OpenGL angeht nicht weiter stören. Es kommt sicherlich noch der Punkt, ab dem du etwas Ereignis gesteuerter renderst. Solange sich nichts verändert hat, wirst du auch nicht neu zeichnen wollen. Das senkt dann die Last ordentlich. Alternativ kann ich dir sonst eine Kapselung (z.B. GLScene) empfehlen, da kannst du auch zusätzlich nativen OpenGL-Code verwenden, hast aber auch den Komfort der Kapselung. Gruß Der Unwissende |
Re: OpemGL - Prozessorlast senken
Naja gut, dann akzeptiere ich vorerst eben die 100%.
Eigentlich ist es doch auch nur ein Phänomen, da andere Anwendungen, die gestartet werden, ja nicht weniger leistungsstark sind - meine Anwendung brät die Auslastung einfach auf 100% hoch, oder? Für den Anfang dürfte es ja dann noch nicht allzu wichtig sein ;) air |
Re: OpemGL - Prozessorlast senken
Ich habe mich in den letzten Tagen auch mit diesem Tutorial beschäftigt. Wenn du einen Timer benutzt geht die CPU Last so ziemlich gegen Null. Die Geschwindigkeit vom Timer reicht für meine Zwecke auch vollkommen aus. Wenn ich das richtig verstanden habe kann man damit ca. 40 Frames pro Sekunde darstellen.
|
Re: OpemGL - Prozessorlast senken
Ich hab es jetzt ohne Timer gemacht und dass die Last so oben ist, ist eig. nicht auffallend, es sei denn man schaut in den TM ;)
Bin schon ein ganzes Stückchen weiter im Projekt...*fg* air |
Re: OpemGL - Prozessorlast senken
Ich programmiere auf meinem Notebook. Wenn da die Last zu hoch ist heult der Lüfter so laut, dass man nach 10 min total genervt ist und es sein lässt...
|
Re: OpemGL - Prozessorlast senken
Jo, die 100% kommen wie bereits gesagt vom Idle ... denn das OnIdle-Event bewirkt in der Tat nichts anderes, als das alle LEistung genommen wird, die da ist. Aber eben genau das sollte ja bei Spielen / Grafikanwendungen meistens auch so sein.
Mit einem Timer (mit Werten so um 50) kann man das ganze in der Tat einschränken ... aber damit begrenzt man halt seine FPS auch auf 200 ... oder wie beim Lazarus-Timer ... bei dem habe ich konstant 64 FPs, wenn ich den zum Rendern nutze und ihn so schnell rennen lasse, wie möglich ... dafür habe ich denn aber auch nur 5-10 % CPU Last ... ok, je nach Anwendung und Prozessor / Grafikkern halt ;) Muss halt jeder selbst abwiegen wie es für einen selber am besten ist ... Wegen Notebook: Ich progge auch nur auf nem Notebook ... aber das stört mich net die Bohne ... alle Ernergiesparoptionen ein, denn gammelt meine X700 Mobile mit halben Takt rum und die CPU (Pentium M) geht maximal 800 Mhz ... denn bleibt auch der Lüfter lieb ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz