AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi CPU Auslastung eines Delphi-Programms drosseln
Thema durchsuchen
Ansicht
Themen-Optionen

CPU Auslastung eines Delphi-Programms drosseln

Ein Thema von Delphiuser1987 · begonnen am 16. Jun 2010 · letzter Beitrag vom 17. Jun 2010
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.378 Beiträge
 
Delphi 12 Athens
 
#1

AW: CPU Auslastung eines Delphi-Programms drosseln

  Alt 16. Jun 2010, 09:28
bei 1.000 oder 10.000 könnte man auch gleich einen Timer verwenden ... wozu da erst einen weiteren "rießigen" Thread laufen lassen, welchen das System auch noch verwalten muß.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von Tonic1024
Tonic1024

Registriert seit: 10. Sep 2003
Ort: Cuxhaven
559 Beiträge
 
RAD-Studio 2009 Ent
 
#2

AW: CPU Auslastung eines Delphi-Programms drosseln

  Alt 16. Jun 2010, 11:00
bei 1.000 oder 10.000 könnte man auch gleich einen Timer verwenden ... wozu da erst einen weiteren "rießigen" Thread laufen lassen, welchen das System auch noch verwalten muß.
Durch MsgWaitForMultipleObjects() wird IMO auch nur der aktuelle Thread schlafen gelegt. Ein bischen wie ein Sleep() mit Message Queue. Und wenn er schon ein funktionierendes Programm hat, das halt schon mit ner Schleife arbeitet, ist er mit der Delay-Funktion schnell fertig. Viele Wege führen nach Rom. Und "besser" ist halt auch ne Standpunkt-Frage.

Toni
Der frühe Vogel fängt den Wurm, richtig.
Aber wird nicht auch der frühe Wurm vom Vogel gefressen?
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#3

AW: CPU Auslastung eines Delphi-Programms drosseln

  Alt 16. Jun 2010, 11:06
@Bummi: Warum so kompliziert. Nimm doch einfach GetCurrentProcess
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#4

AW: CPU Auslastung eines Delphi-Programms drosseln

  Alt 16. Jun 2010, 09:53
Ein anderer Vorschlag
Delphi-Quellcode:
uses Tlhelp32;

{$R *.dfm}
function getPid(const name: string): integer;
  var
    hProcSnap: THandle;
    pe32: TProcessEntry32;
begin
    result:= 0;
    hProcSnap := CreateToolHelp32SnapShot(TH32CS_SNAPPROCESS, 0);
    if hProcSnap = INVALID_HANDLE_VALUE then exit;
    pe32.dwSize := SizeOf(ProcessEntry32);
    if Process32First(hProcSnap, pe32) = true then
       while Process32Next(hProcSnap, pe32) = true do
       begin
        if lowerCase( pe32.szExeFile) = name then
        begin
         result:= pe32.th32ProcessID;
         break;
        end;
       end;
    CloseHandle(hProcSnap);
end;

Procedure SetProcessPriority(const fn:String;Priority:Integer);
{IDLE_PRIORITY_CLASS, NORMAL_PRIORITY_CLASS , HIGH_PRIORITY_CLASS, REALTIME_PRIORITY_CLASS}
var
   newhandle:Thandle;
begin
    newhandle := OpenProcess(PROCESS_SET_INFORMATION, false, getPid(fn));
    setpriorityclass(newhandle, Priority);
    CloseHandle(newhandle);
end;

procedure TForm2.Button1Click(Sender: TObject);
begin
   SetProcessPriority(Lowercase(ExtractFileName(Application.ExeName)),IDLE_PRIORITY_CLASS);
end;
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  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 11:22 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