Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 17

Thema: C++ Programm zu hohe CPU auslastung

  1. #1
    Registriert seit
    19.08.2007
    Beiträge
    162
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen.

    Ich habe hier ein wirklich tolles Programm zur Verwaltung von Musik-Alben.
    Das Programm funktioniert auch wunderbar. Das einzige Problem ist die CPU Auslastung ist ständig sehr hoch! Auch wenn ich nichts mache in der Anwendung.
    Irgendwas am Quellcode stimmt nicht. Ich weiß leider nicht weiter!
    evtl. hat jemand von euch eine Idee warum die CPU-Auslastung immer so hoch ist und wie ich es minimieren kann.
    Ich hab euch mal das Hauptprogramm als .txt angehängt.
    Bin für jede Idee offen.

    main.txt
    Zitieren Zitieren C++ Programm zu hohe CPU auslastung  

  2. #2
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.222
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard

    Das Einzige, was mir sofort auffällt, daß da OpenGL initialisiert wird. Ja nachdem, wie das verwendet wird, kann da schon die Last steigen, besonders falls das von der Haupt-CPU erledigt werden muß.

    PS:
    Ich seh grad, das Ganze Teil, also die Oberfläche etc. basiert auf OpenGL. Na ja ich kann nur sagen, wenn unter Win mit DirectX rumgeproggt habe, dann ging die Systemlast auch immer fleißig nach oben. Die Scene (hier die Oberfläche) wird ja so oder so ständig neu berechnet. Wenn dann die Grafikkarte nicht unterstützt und das emuliert wird (so jedenfalls bei DirektX) dann kann das schon gut sein.
    Geändert von Ralle (10.12.2008 um 21:10 Uhr)
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  3. #3
    Registriert seit
    27.10.2005
    Ort
    Schwäbisch Gmünd
    Beiträge
    5.224
    Danke
    630
    Erhielt 955 Danke für 769 Beiträge

    Standard

    Was passiert in glutMainLoop?
    Rainer Hönle
    DELTA LOGIC GmbH

    Ein Computer kann das menschliche Gehirn nicht ersetzen. Engstirnigkeit kann unmöglich simuliert werden. (Gerd W. Heyse)

  4. #4
    demmy86 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    19.08.2007
    Beiträge
    162
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hi

    Danke schon mal!
    also Ralle hast du einen Vorschlag wie man das geschickter Lösen könnte?
    Wäre eine in directX programmierte Oberfläche die Lösung?
    wegen der glutMainLoop schau ich gleich mal nach.

    gruß
    Geändert von demmy86 (11.12.2008 um 16:53 Uhr)

  5. #5
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.222
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard

    Eine Frage wäre, ob die eingesetzte Grafikkarte und besonders die Treiber OpenGL, also Hardwarebeschleunigung unterstützen. Denn eigentlich soll ja bei OpenGL, genau wie bei DirektX die Grafikkarte die Rechenintensive Arbeit, wie 3D-Darstellung und Rendern der Oberfläche erledigen. Aber mit OpenGL hab ich mich bisher nur am Rande befaßt, um es mal unter Win mit Delphi zu testen. Was ich hier kundtue ist also mehr Halbwissen.

    Wenn meine Vermutung stimmt, gibt es 2, vielleicht 3 Möglichkeiten.

    1. Schnelle Grafikkarte mit Hardwarebeschleunigung und den richtigen Treiber.
    2. Die Oberfläche von unnötigem 3D-Kram etc. befreien.

    3. Das Rendern der 3D-Oberfläche läuft ja in einer Endlos-Schleife ab (glutMainLoop????) Wenn man in dieser Schleife vielleicht eine Wartezeit einbaut, wird die Oberfläche evtl. nicht mehr so schnell aktualisiert, aber die Last der CPU könnte dadurch sinken.

    Du könntest testweise bestimmte Dinge aus der Oberfläche auskommentieren und mal testen, ob die Last sinkt. Kann aber auch sein, daß das Rendern dann mehr Frames/Sekunde bringt, die Last aber bleibt.
    Evtl. gibt es Einstellungen für OpenGL, welche den Anteil des Prozesses an der CPU-Rechenzeit einschränken?
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  6. #6
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    Zitat Zitat von Ralle Beitrag anzeigen
    2. Die Oberfläche von unnötigem 3D-Kram etc. befreien.
    ist die schönste lösung!
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  7. #7
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.222
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard

    Zitat Zitat von vierlagig Beitrag anzeigen
    ist die schönste lösung!
    Das Problem ist, das die gesamte Oberfläche auf OpenGL beruht.
    Probieren würde ich das aber ganz sicher mal.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  8. #8
    Registriert seit
    27.10.2005
    Ort
    Schwäbisch Gmünd
    Beiträge
    5.224
    Danke
    630
    Erhielt 955 Danke für 769 Beiträge

    Standard

    Ich glaube nicht, dass der Grafik-Schnick-Schnack die eigentliche Ursache der hohen CPU-Last ist. Die heutigen Rechner müssen das abkönnen, egal ob mit oder ohne Beschleuniger-Grafikkarte. Erhöhte Last ja, aber nicht sehr hohe Last (was bedeutet dies eigentlich in Prozent? Wo liegt die hohe Last?) Ich tippe eher auf den Programmteil, der noch nicht eingestellt ist.
    Rainer Hönle
    DELTA LOGIC GmbH

    Ein Computer kann das menschliche Gehirn nicht ersetzen. Engstirnigkeit kann unmöglich simuliert werden. (Gerd W. Heyse)

  9. #9
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.222
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard

    @rainer
    Yep da kannste Recht haben, aber wer weiß, was demmy86 da als Linuxmöhre "mißbraucht", bei mir waren das meißt irgendwelche ausgemusterten Gurken.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  10. #10
    demmy86 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    19.08.2007
    Beiträge
    162
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    meine Linux möhre is ein 1,2GHz Rechner mit ner VIA/S3G UniChrome Pro II IGP Grafikkarte!
    Die Grafikkarte läuft mit DirektX ich schau grad ma ob sie auch OpenGL ab kann!
    Also nix besonderes lol
    Also wie gesagt er läd die Oberfläche und ich kann alles im Programm machen nur eben etwas langsamer da die CPU immer zu 100% ausgelastet ist!
    Und es läuft Windows XP Home.
    die anderen teile stell ich gleich mal ein!

Ähnliche Themen

  1. C7-633 Auslastung
    Von rheumakay im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 13.10.2011, 14:31
  2. BK9050 zu hohe Netzwerk Auslastung?
    Von daniel1987 im Forum CODESYS und IEC61131
    Antworten: 4
    Letzter Beitrag: 05.09.2011, 07:44
  3. CA01 10/2009 -> Hohe CPU Auslastung
    Von rs-plc-aa im Forum PC- und Netzwerktechnik
    Antworten: 8
    Letzter Beitrag: 17.12.2009, 17:14
  4. CP 443-1 Auslastung der Schnittstelle
    Von automobil80 im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 12.03.2008, 08:53
  5. Pumpen gleichmäßige Auslastung
    Von ottopaul im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 04.04.2007, 12:43

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •