Aktuelle Zeit: 22.12.2024, 20:56

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 23 Beiträge ]  Gehe zu Seite Vorherige  1, 2
Autor Nachricht
 Betreff des Beitrags: Re: Irrlicht drosseln
BeitragVerfasst: 12.10.2008, 20:57 
Offline
Moderator
Benutzeravatar

Registriert: 25.03.2007, 18:11
Beiträge: 834
Wohnort: Hagen, NRW
100% Auslastung im Taksmanager != Volle beanspruchung des Prozessors.

Der Taskmanager gibt nur an, wie viel Prozent der Zeit der Prozessor mit diesem Programm beschäftigt ist.
Wenn der Prozessor komplett ausgelastet ist, bekommt das Programm dann bestimmt keine 300fps mehr hin.

Komplett ausgelastet ist er erst dann, wenn du aber tausende von Instruktionen an das Ding schickst.

Eine einfach endlosschleife mit ein paar funktionsaufrufen, die den ganzen kram sowieso nur an die GraKa schicken wird wohl kaum alles vom prozi abverlangen.

_________________
Phenom X4 9950 BE | 6144MB DDR2-800 | GeForce 8800GT 512MB | Asus M3A32-MVP Deluxe | 2TB HDD | 520W Seasonic NT | Soprano Tower | Samsung 22" TFT + Fujitsu-Siemens 17" TFT + Toshiba 42" FullHD LCD | Windows 7 Proessional x64
Behind the Brain


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Irrlicht drosseln
BeitragVerfasst: 13.10.2008, 05:19 
Offline
Benutzeravatar

Registriert: 17.02.2008, 14:08
Beiträge: 125
Dann halt die Graka :P

Aber wenn der Prozessor die ganze Zeit mit dem Programm beschäftigt ist, dann wird er doch ziemlich beansprucht oder? Ob das Programm jetzt 60 oder 300 mal pro Sekunde da durchgejagt wird ist doch schon ein Unterschied.

MfG

_________________
Cold-Death
Magnon


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Irrlicht drosseln
BeitragVerfasst: 13.10.2008, 06:39 
Offline
Benutzeravatar

Registriert: 07.08.2008, 11:31
Beiträge: 104
Hallo!

Zitat:
Aber wenn der Prozessor die ganze Zeit mit dem Programm beschäftigt ist, dann wird er doch ziemlich beansprucht oder? Ob das Programm jetzt 60 oder 300 mal pro Sekunde da durchgejagt wird ist doch schon ein Unterschied.

Sicher! Also ich sehe das bei meinem Laptop ganz deutlich. Unten in der Taskleiste, bei der Uhr habe ich eine Anzeige für die CPU-Beanspruchung, Temperatur, Taktrate, etc.
In Irrlicht schießt der von 800MHz auf 2.0GHz (das ist bei mir so) und ist vollausgelastet, die Temperatur steigt an. Mir ist aber aufgefallen, dass das nicht immer der Fall sein muss. Ist nur eine simple GUI-Oberfläche vorhanden und wird der Scenemanager nicht benutzt, verhält sich der CPU ganz normal, wie auch immer.

Ich hatte bei mir eine Pause-Funktion eingebaut, wurde das Spiel pausiert, so ging die CPU-Nutzung wieder nach oben. Mittlerweile habe ich das Problem gelöst, ich habe die if-Abfragen etwas umgestalten und zusätzlich
Zitat:
else
{
_sleep(3000);
}

einen 3 Sekunden-Dämpfer integriert.

Ich habe eine Idee. Ich werde einfach zwei Speedbremsen einbauen, einmal fürs Game und einmal für das Hauptmenü. So kann man zB. für das Menu 100msec einstellen und für das Game disabled.
Blöd ist aber, dass dann dementsprechend der Mauszeiger ruckelt, ich muss dazusagen, dass ich nicht den normalen Windows-Mauszeiger verwende, sondern Sprites. Da muss ich mir auch noch was sinnvolles einfallen lassen.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Irrlicht drosseln
BeitragVerfasst: 13.10.2008, 11:27 
Offline
Moderator
Benutzeravatar

Registriert: 25.03.2007, 18:11
Beiträge: 834
Wohnort: Hagen, NRW
Ihr geht das so gesehen völlig falsch an.

Macht erstmal eure Spiele/Anwendungen fertig.
Dann seht ihr auf welchen System das wie schnell rendert.

Wenn ihr auf so gut wie allen System zu schnell seid, dann könnt ihr über so einen Blödsinn nachdenken. Aber jetzt wurschtelt ihr da ein paar Tage dran drum, nur um dann in einem Jahr zu merken, dass das Programm auch auf einem HighEnd rechner nicht über seine 60fps kommt und ihr die Drosselung gar nicht braucht.

_________________
Phenom X4 9950 BE | 6144MB DDR2-800 | GeForce 8800GT 512MB | Asus M3A32-MVP Deluxe | 2TB HDD | 520W Seasonic NT | Soprano Tower | Samsung 22" TFT + Fujitsu-Siemens 17" TFT + Toshiba 42" FullHD LCD | Windows 7 Proessional x64
Behind the Brain


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Irrlicht drosseln
BeitragVerfasst: 13.10.2008, 12:11 
Offline
Benutzeravatar

Registriert: 07.08.2008, 11:31
Beiträge: 104
Hallo Sylence!

Klar, ich habe doch gesagt, dass ich es im großen und ganzen für Schwachsinn halte, aber ich möchte dennoch in meinem Spiel auf diese Funktion nicht verzichten. Das ist bloß eine Arbeit von 5 Minuten. 8)

  • 4 Variablen in Config-Klasse schreiben, mit Default-Zuweisung
  • In der Irrlicht-Schleife eine if-Anweisung
  • Bei der Initialisierung 4 Werte auslesen (neben 400 anderen ;-))
  • 4 Werte in den Config-Writer integrieren
  • Und noch die Konfigurationsdatei anpassen


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Irrlicht drosseln
BeitragVerfasst: 13.10.2008, 13:54 
Offline
Newsposter
Benutzeravatar

Registriert: 12.03.2007, 10:42
Beiträge: 338
Wohnort: Berlin
und übrigens,
wenn du dieses sinnvoll an der stelle nutzen willst ohne eine einbusse in der benutzerfreundlichkeit, dann solltest du möglichst etwas höheres als ein _sleep(500); vermeiden, alleine schon aus dem grund den du selbst herrausgefunden hast (stockendes Programm) denn in diesem moment wird wirklich das gesammte programm (ausser die zusätzlichen threads) für die dauer der angegebennen millisekunden pausiert/gestoppt.

mfg. Psy


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Irrlicht drosseln
BeitragVerfasst: 13.10.2008, 14:14 
Offline
Moderator
Benutzeravatar

Registriert: 25.03.2007, 18:11
Beiträge: 834
Wohnort: Hagen, NRW
Nicht über 500?
Ein sleep von einer ms reicht schon aus, um dem Programm nur soviel CPU Zeit zu geben wie es "braucht".

Bei 3 GHz ist eine ms schließlich 3.000.000 Taktzyklen. Da bleibt dann schon Zeit für was anderes ^^

_________________
Phenom X4 9950 BE | 6144MB DDR2-800 | GeForce 8800GT 512MB | Asus M3A32-MVP Deluxe | 2TB HDD | 520W Seasonic NT | Soprano Tower | Samsung 22" TFT + Fujitsu-Siemens 17" TFT + Toshiba 42" FullHD LCD | Windows 7 Proessional x64
Behind the Brain


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Irrlicht drosseln
BeitragVerfasst: 13.10.2008, 14:27 
Offline
Benutzeravatar

Registriert: 07.08.2008, 11:31
Beiträge: 104
500msec sind wirklich ein wenig zu viel, der Cursor ruckelt dann ganz schön. Ähnlich wie Vista auf einem 500MHz Rechner :D
Nein ich denke wirklich paar Milisekunden werden ausreichen.
Und wie gesagt, im Spielmenü läuft der CPU garnicht mal auf Volltour. Er verhält sich wie bei einer gewöhnlichen Applikation, obwohl ja jedes mal die Cursorsprites und noch weitere 2D-Objekte gerendert werden müssen.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Irrlicht drosseln
BeitragVerfasst: 13.10.2008, 15:13 
Offline
Newsposter
Benutzeravatar

Registriert: 12.03.2007, 10:42
Beiträge: 338
Wohnort: Berlin
ok dann hab ich das mit dem _sleep(3000) von dir falsch verstanden ^^ und das mit den wenigen millisekunden (1-10ms) weis ich bereits, da ich es auch schonmal benutzt habe, und zwar auf die gleiche art und weise


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Irrlicht drosseln
BeitragVerfasst: 13.10.2008, 16:41 
Offline
Benutzeravatar

Registriert: 07.08.2008, 11:31
Beiträge: 104
psyco001,

Ne schau dir bei Unklarheiten nochmal meinen Code an. Die _sleep(3000) sind nur dann aktiv, wenn das Spiel pausiert ist!!

Hier noch einmal die aktuelle Fassung der Irrlicht-Schleife (so nenne ich den Abschnitt):
Code:
while (Main::sys->device->run())
   if (Main::sys->device->isWindowActive() && Main::paused == false)
   {
                    Main::sys->driver->beginScene(true, true, SColor(0,0,0,0));
                    Main::sys->gui->drawAll();

                    if (Main::state == MENU)
                    {
                              Main::Cursor(Main::menu->cursor);
                    }

                    else
                    {
                              Main::Cursor(Main::game->cursor);
                    }

                    Main::sys->driver->endScene();

                    if (Main::config->speedthrottle)
                    {
                              _sleep(Main::config->speedthrottletime);
                    }
   }
          else
          {
                    _sleep(3000);
          }


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Irrlicht drosseln
BeitragVerfasst: 13.10.2008, 17:03 
Offline
Newsposter
Benutzeravatar

Registriert: 12.03.2007, 10:42
Beiträge: 338
Wohnort: Berlin
^^' aso ok jetz hab ich es verstanden, war für mich vorher irgendwie nicht ersichtlich


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 23 Beiträge ]  Gehe zu Seite Vorherige  1, 2

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de