AGB  ·  Datenschutz  ·  Impressum  







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

Systemhandles laufen hoch...

Ein Thema von Mavarik · begonnen am 10. Dez 2009 · letzter Beitrag vom 11. Dez 2009
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.130 Beiträge
 
Delphi 10.3 Rio
 
#1

Systemhandles laufen hoch...

  Alt 10. Dez 2009, 12:59
Hallo Zusammen...

Meine Systemhandles laufen hoch, wenn mein Programm (Servicedienst) arbeitet.

Wenn ich die Anzahl der Handles intern Abfrage mit :

Delphi-Quellcode:
Function HandleCount:Integer;
var
  Pid : Thandle;
  g,
  U : integer;
begin
  Pid := GetCurrentProcess;

  try
    g := GetGuiResources(Pid,GR_GDIOBJECTS);
    u := GetGuiResources(Pid,GR_USEROBJECTS);
  finally
    Closehandle(Pid);
  end;

  result := g+u;
end;
Bleibt die Zahl (ca. 55) jedoch konstant. Übersehe ich etwas?

Grüsse Mavarik
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Systemhandles laufen hoch...

  Alt 10. Dez 2009, 13:05
Also moment.. im Taskmanager werden mehr Handels angezeigt als du im Programm auslesen kannst?
Oder die Funktion bringt in nem Dienst ständig wachsende Zahlen, in nem normalen Programm bleiben die Zahlen jedoch konstant?
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Systemhandles laufen hoch...

  Alt 10. Dez 2009, 13:08
GetGuiResources gibt nur die GUI-Handles zurück
und da dürften FileHandles und andere nichgrafische Handles nicht enthalten sein.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.130 Beiträge
 
Delphi 10.3 Rio
 
#4

Re: Systemhandles laufen hoch...

  Alt 10. Dez 2009, 13:18
Zitat von Angel4585:
Also moment.. im Taskmanager werden mehr Handels angezeigt als du im Programm auslesen kannst?
Oder die Funktion bringt in nem Dienst ständig wachsende Zahlen, in nem normalen Programm bleiben die Zahlen jedoch konstant?
Nein... Im Taskmanager laufen die "System Handles" immer weiter hoch...

In meinem Programm welchers ein Systemdienst ist bleiben diese (gemäß meiner Abfrage) konstant...

Zitat von himitsu:
GetGuiResources gibt nur die GUI-Handles zurück
und da dürften FileHandles und andere nichgrafische Handles nicht enthalten sein.
OK Fileshandles ist mir klar, "nichtgrafische" Handles... Haste da mal ein Beispiel...

Ich habe Events, Mutex Handles aber die können es nicht sein...
HDC, HDesk, HWINSTA und HWND aber die müssten ja enauso wie Bitmaps bei meiner Abfrage dabei sein, oder ?

Mavarik
  Mit Zitat antworten Zitat
Delphi-Laie

Registriert seit: 25. Nov 2005
1.474 Beiträge
 
Delphi 10.1 Berlin Starter
 
#5

Re: Systemhandles laufen hoch...

  Alt 10. Dez 2009, 13:56
Zitat von Mavarik:
OK Fileshandles ist mir klar, "nichtgrafische" Handles... Haste da mal ein Beispiel...
Prozeßhandles z.B. - der Taskmanager zeigt deren Anzahl an (s.o.).
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#6

Re: Systemhandles laufen hoch...

  Alt 10. Dez 2009, 14:01
Die Winsta und Desktophandles werden vom System öfters offen gehalten. Ich habe das auch schon bemerkt. Da hilft kein Closehandle.
Vermutlich werden diese irgendwie noch intern von Systemfunktionen verwendet.
TV hat das Problem übrigens auch und das ist in C++ geschrieben.

Du kannst im Processexplorer mit Strg+H die offenen Handles genauer ansehen.

Das ganze ist allerdings nicht weiter schlimm, wenn die Anwendung nicht ewig laufen soll (Sonst einfach die Anwendung neustarten).
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.130 Beiträge
 
Delphi 10.3 Rio
 
#7

Re: Systemhandles laufen hoch...

  Alt 10. Dez 2009, 14:20
Zitat von Dezipaitor:
Die Winsta und Desktophandles werden vom System öfters offen gehalten. Ich habe das auch schon bemerkt. Da hilft kein Closehandle.
Grrr... Unnötig zu sagen, dass DU mal wieder die Lösung hattest...
Pro ScreenShot 2x Desktop 1x WindowStation

Bei 20 FPS macht das schon 3600 Handles/Minute...

Zitat von Dezipaitor:
Das ganze ist allerdings nicht weiter schlimm, wenn die Anwendung nicht ewig laufen soll (Sonst einfach die Anwendung neustarten).
Tja das ist aber mein Systemdienst und der sollte eigenlich lifetime/Windows Uptime im Speicher bleiben...

Auch warten hilft nix... Nur Terminate...

Mavarik
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Systemhandles laufen hoch...

  Alt 10. Dez 2009, 14:27
Du könntest dir diese Handles doch auch nur einmal und nur bei Änderungen neu holen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.130 Beiträge
 
Delphi 10.3 Rio
 
#9

Re: Systemhandles laufen hoch...

  Alt 10. Dez 2009, 14:35
Zitat von himitsu:
Du könntest dir diese Handles doch auch nur einmal und nur bei Änderungen neu holen.
Ich muss ja genau um die Änderungen fest zu stellen die WindowsStation und den Desktop aufmachen...

Mavarik
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.130 Beiträge
 
Delphi 10.3 Rio
 
#10

Re: Systemhandles laufen hoch...

  Alt 10. Dez 2009, 14:45
PS:

Der CloseDesktop(hDesktop) und CloseWindowStation(hWinstation) liefern ein

GetLastError = 170 ; ERROR_BUSY

zurück...

Mavarik
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 09:52 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