AGB  ·  Datenschutz  ·  Impressum  







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

CPU-Auslastung eines Prozesses

Ein Thema von ustra · begonnen am 4. Nov 2003 · letzter Beitrag vom 8. Nov 2003
Antwort Antwort
Seite 2 von 3     12 3      
ustra

Registriert seit: 12. Mär 2003
Ort: Geesthacht
138 Beiträge
 
Delphi 5 Professional
 
#11

Re: CPU-Auslastung eines Prozesses

  Alt 7. Nov 2003, 20:05
Hallo,

mh, ich habe das Programm eigentlich nur genommen, um zu sehen, ob es geht. Nachher will ich Mechanical Desktop nehmen. Da wird sicherlich so was gemacht, dass irgendetwase im Kernel berechnet wird. Muss ich gleich mal ausprobieren.

Beste Grüße
Ulrich
Ulrich Strauer
  Mit Zitat antworten Zitat
ustra

Registriert seit: 12. Mär 2003
Ort: Geesthacht
138 Beiträge
 
Delphi 5 Professional
 
#12

Re: CPU-Auslastung eines Prozesses

  Alt 7. Nov 2003, 20:25
Hallo,

Thema hat sich erledigt. Es klappt alles. Es lag daran,d ass ich gedacht hatte, dass die Usertime angibt, wie lange das Prog läuft (ist aber nicht so). Ich dachte, allein die Kernel-zeit gibt Aufschluss über die Aktivität eines Proggs.

Beste Grüße
Ulrich
Ulrich Strauer
  Mit Zitat antworten Zitat
Benutzerbild von matthiasl
matthiasl

Registriert seit: 30. Okt 2003
Ort: Nienburg
14 Beiträge
 
Delphi 2007 Enterprise
 
#13

Re: CPU-Auslastung eines Prozesses

  Alt 7. Nov 2003, 21:04
Das Problem kann man auch anders angehen:

WaitForInputIdle(ProcessHandle,INFINITE);

Wo man Gutes in Frage stellt, kann Besseres entstehen...
Wenn null besonders groß ist, ist es fast ein bischen eins...
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#14

Re: CPU-Auslastung eines Prozesses

  Alt 7. Nov 2003, 21:21
Nein, UserTiem gibt an wie wviel zeit das Programm tatsächlich damit beschäftigt ist Programmcode auszuführen. Ein Thread bekommt ja nur zeitscheibenweise CPU Zeit zugeteilt. Und mit GetProcessTimes / GetThreadTimes bekommst du die Zeit, die ein Prozess / Thread damit verbringt tatsächlich Code auszuführen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
choose

Registriert seit: 2. Nov 2003
Ort: Bei Kiel, SH
729 Beiträge
 
Delphi 2006 Architect
 
#15

Re: CPU-Auslastung eines Prozesses

  Alt 7. Nov 2003, 21:51
Zitat von ustra:
Hallo,
Thema hat sich erledigt. Es klappt alles.
Merkwürdig... Mit ShellExecute, klappt's bei mir nicht, gemäß der Reference, muss das Handle be created with the PROCESS_QUERY_INFORMATION access right und dieses Recht konnte ich nur mithilfe von OpenProcess erlangen oder indem ich den Process mit CreateProcess erzeuge...

Kannst Du noch einmal zeigen, wie Du den Prozess erzeugst? Danke.

Zitat von ustra:
Er zeigt mir auch alle Werte richtig an bis auf den Wert KernelTime
Nur wenig Zeit (API-Aufrufe, die vom Kernel beantwortet werden müssen, intensiver API-Gebraucht, weil diese Int-Aufrufe im Kernel-Mode ausgeführt werden, etc) verbringt ein "gewöhnlicher" Process im Kernel-Modus, diese Zahl bleibt oft nur sehr klein.
gruß, choose
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#16

Re: CPU-Auslastung eines Prozesses

  Alt 7. Nov 2003, 22:02
shellexecute liefert weder ein Handle des Fensters zurück noch die ProcessID. Entweder CreateProcess oder ShellexecuteExe nehmen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
ustra

Registriert seit: 12. Mär 2003
Ort: Geesthacht
138 Beiträge
 
Delphi 5 Professional
 
#17

Re: CPU-Auslastung eines Prozesses

  Alt 7. Nov 2003, 22:03
Hallo Choose,

da hast Du nicht genau gelesen. Ich habe die funktion ShellExecuteEx benutzt und nicht ShellExecute. Da Du so nett bist und mir geholfen hast, bekommst Du gleich noch den Code von mir:

Delphi-Quellcode:
var Info: TShellExecuteInfo;
FileName : string;
begin
  FileName := 'c:\2\Project2.exe';
  with Info do begin
    cbSize := SizeOf(Info);
    fMask := SEE_MASK_NOCLOSEPROCESS;
    lpVerb := 'open';
    lpFile := pChar(FileName);
    lpParameters := nil;
    lpDirectory := nil;
    nShow := 0;
    hInstApp := 0;
    lpIDList := nil;
  end;

  { Call indows to display the properties dialog. }
   ShellExecuteEx(@Info);
   //Das Handle des Prozesses auslesen
   handle2 := info.hProcess;
end;
Beste Grüße
Ulrich
Ulrich Strauer
  Mit Zitat antworten Zitat
ustra

Registriert seit: 12. Mär 2003
Ort: Geesthacht
138 Beiträge
 
Delphi 5 Professional
 
#18

Re: CPU-Auslastung eines Prozesses

  Alt 7. Nov 2003, 22:04
Da war Luckie wieder ein Tick schneller. grins

Ulrich
Ulrich Strauer
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#19

Re: CPU-Auslastung eines Prozesses

  Alt 7. Nov 2003, 22:06
Ich bin immer schneller.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
choose

Registriert seit: 2. Nov 2003
Ort: Bei Kiel, SH
729 Beiträge
 
Delphi 2006 Architect
 
#20

Re: CPU-Auslastung eines Prozesses

  Alt 7. Nov 2003, 22:21
Wer lesen kann, ist... und vielleicht gibt's auch mal jmd, der schneller schreiben kann als Luckie

Die Antwort ShellExecuteEx hätte mir gereicht, Ulrich. Hatte mich nur gewundert, weil ich es nur mit CreateProcess/OpenProcess und eben nicht mit (dem falsch gelesenen) ShellExecute hinbekommen habe...

Freut mich, dass Dein Problem nun keins mehr ist!

EDIT: Sag mal, gehörtest Du zu dieser Firma mit dem auffällig untechnischen Namen, nach dem ich mich auf der EKON beim Essen erkundigt habe?
gruß, choose
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 14:40 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