AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Optimierung der Prioritäten

Ein Thema von bluescreen25 · begonnen am 5. Jul 2007 · letzter Beitrag vom 5. Jul 2007
Antwort Antwort
bluescreen25

Registriert seit: 27. Nov 2005
Ort: Geldern
229 Beiträge
 
Delphi 7 Enterprise
 
#1

Optimierung der Prioritäten

  Alt 5. Jul 2007, 11:50
wenn ich aus der meiner MP3-Anwendung heraus ein externes Programm starte, kommt es genau beim Start zu hohen CPU-Auslastungen, so das ich kurze Aussetzer bei der Wiedergabe von MP3 habe.

Ich habe mich mal in Thread und Process-Prioritäten eingelesen und auch soweit Resultate, nur wie macht man es richtig bzw optimiert ?

Ich möchte die externe Anwendung soweit wie möglich in der CPU-Auslastung gebremst starten, sodas es die Hauptanwendung nicht stört.

Hier mal mein Code dazu:

Code:
     var
      app,appWithPath,WndClass: String;
      ProcID,ThreadID: Cardinal;
      AppWindow,Wnd : HWnd;


    begin
      ....
      ProcID := 0;                        
      AppWindow := 0;
      RunProcess(appWithPath, SW_SHOW, FALSE, @ProcID);
      SetProcessPriorty(ProcID,IDLE_PRIORITY_CLASS); //  zum testen !
      SetThreadPriority(GetCurrentThreadId,THREAD_PRIORITY_IDLE);
      repeat
        AppWindow := GetWndHandle(ProcID);
        application.ProcessMessages;    
        sleep(500);                      
      until (AppWindow <> 0) or stopSearch; //stopSearch durch Timer, falls gar nicht findet
      if AppWindow <> 0 then
         begin
           Sleep(500);
           SetThreadPriority(GetCurrentThreadId,THREAD_PRIORITY_NORMAL);
           SetProcessPriorty(ProcID,NORMAL_PRIORITY_CLASS); // zum testen !
         end;
       ....
...und ich dachte, Delphi ist ein Programmgenerator mit nur einem Button......tzzz
  Mit Zitat antworten Zitat
Benutzerbild von Gausi
Gausi
Online

Registriert seit: 17. Jul 2005
847 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Optimierung der Prioritäten

  Alt 5. Jul 2007, 11:58
Bist du dir denn sicher, dass die Aussetzer durch die hohe CPU-Last verursacht werden? Ich würde nämlich auf ein kurzzeitiges Aussetzen des Datenstroms tippen, weil die Platte gerade mit anderen Dingen beschäftigt ist.
Hier wäre dann die Lösung nicht ein umsetzen der Prioritäten, sondern ein Vergrößern des Playerbuffers.
  Mit Zitat antworten Zitat
bluescreen25

Registriert seit: 27. Nov 2005
Ort: Geldern
229 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Optimierung der Prioritäten

  Alt 5. Jul 2007, 12:16
Zitat von Gausi:
Bist du dir denn sicher, dass die Aussetzer durch die hohe CPU-Last verursacht werden? Ich würde nämlich auf ein kurzzeitiges Aussetzen des Datenstroms tippen, weil die Platte gerade mit anderen Dingen beschäftigt ist.
Hier wäre dann die Lösung nicht ein umsetzen der Prioritäten, sondern ein Vergrößern des Playerbuffers.
Der erste Weg zur Verbesserung lag in dem Sleep innerhalb der Repeat-Schleife.
Die Schleife frist schon ziemliche Resourcen, bis die nach Start des ext. Progs aufgehoben wird.

Was im Code jetzt nicht zu sehen ,ist ist die alternative Findwindow innerhalb der Schleife.

Der Puffer des Player ist Standart, die CPU-Zeit 100% gewesen bevor sleep hinzukam.

Was mich jetzt interessiert ist, ob am Code da was zu optimieren gilt ?
Macht das Sinn, so die Prios zu setzen um die aus meinem Prog. aufgerufenen Apps "im Hintergrund" starten zu lassen (Resourcenschonend) ?
...und ich dachte, Delphi ist ein Programmgenerator mit nur einem Button......tzzz
  Mit Zitat antworten Zitat
Antwort Antwort


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 10:46 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