Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi GDI Handles einer Anwendung (https://www.delphipraxis.net/186341-gdi-handles-einer-anwendung.html)

Whookie 1. Sep 2015 16:01

AW: GDI Handles einer Anwendung
 
Also mal kurz experimentell herausgefunden:

1.
Kleines Progamm mit ein paar Buttons, geöffnet 16/44 (hatte auch schon 21/44).
Mit dem Button erstelle ich eine sonst leere Form und zeige sie Modal an: 16/47 (braucht also drei geheime Ressourcen).

Daraus lässt sich ableiten das die Analyse der Handles von seiten GDIView wohl nicht komplett ist, denn so eine Form benötigt bestimmt Ressourcen und die sind wohl auch nicht geheim. Vielmehr denke ich, das Microsoft - die bewusst undokumentierte - GDI-Table umgestaltet/ausgebaut/erweitert/... hat und damit nicht alle Werte angezeigt werden (können).

2.
Weiterer Button zum Erzeugen eines Icons (das braucht so eine Form) und schon geht der Zähler von 16/44 auf 16/45. Daraus folgt: Icons werden schon mal nicht mitgezählt...

Die Jagd auf die anderen beiden Ressourcen sei also hiermit offizell eröffnet :wink:

Alex_ITA01 2. Sep 2015 06:39

AW: GDI Handles einer Anwendung
 
Hi Whookie,
das habe ich auch schon festgestellt, dass nach dem Anwendungsstart der erste Wert kurzzeitig immer höher ist (zwischen 3 und 4 bei mir) und dann geht die Anzahl wieder nach unten und ist dann aber stabil (solange nix gemacht wird -> neues Formular etc.).

Vielleicht bekommen wir ja doch noch raus, was das so für Ressourcen sind ;-)

TiGü 2. Sep 2015 08:43

AW: GDI Handles einer Anwendung
 
Zitat:

Zitat von Alex_ITA01 (Beitrag 1314304)
Sorry aber versteh mich nicht...

Wenn du dich selber nicht verstehst, wie sollen wir es? :gruebel: :mrgreen:

Zitat:

Zitat von Alex_ITA01 (Beitrag 1314304)
Klar habe ich die gelesen und da steht das man anscheind irgendwo Leaks mit Cursors und Icons oder ähnlichem hat.

Okay, das übliche Lesen <> Verstehen.
Ich frage mal ganz konkret: Steigt bei dir denn die Zahl in der Spalte "All GDI" während alle anderen ungefähr konstant bleiben und somit nicht ansteigen?

Zitat:

Zitat von Alex_ITA01 (Beitrag 1314304)
Aber wie erklärst du mir dann damit das Beispiel mit den 2 Formularen und dem einen VirtualStringTree auf dem zweiten Formular. Ich habe doch gar keine Cursoren, Icons oder ähnliches angepackt. Nicht mal Quelltext habe ich geschrieben außer das Form2 initialisiert und angezeigt wird.

Was gibt es da zu erklären?
Der VirtualStringTree ist eine visuelle Komponente, die mithilfe der GDI/Canvas gezeichnet wird.
Das verbraucht GDI-Handles.

Alex_ITA01 2. Sep 2015 09:27

AW: GDI Handles einer Anwendung
 
Zitat:

Zitat von Alex_ITA01:
Sorry aber versteh mich nicht...

Wenn du dich selber nicht verstehst, wie sollen wir es?
Eigentlich sollte das heißen:
Sorry aber versteh mich nicht falsch... Das war eher auf dich bezogen :mrgreen:


Zitat:

Okay, das übliche Lesen <> Verstehen.
Ich frage mal ganz konkret: Steigt bei dir denn die Zahl in der Spalte "All GDI" während alle anderen ungefähr konstant bleiben und somit nicht ansteigen?
Nein da hast du schon Recht. Mir ging es ja lediglich darum zu verstehen, welche Handles in der Spalte "Alle GDIs" enthalten sind, die bei der Spalte "GDI Total" fehlen.


Zitat:

Was gibt es da zu erklären?
Der VirtualStringTree ist eine visuelle Komponente, die mithilfe der GDI/Canvas gezeichnet wird.
Das verbraucht GDI-Handles.
Das der VST eine visuelle Komponente ist weiß ich aber 100 GDI Handles für einen VST? Find ich irgendwie viel oder nicht?

Es wurde in früheren Beiträgen geschrieben, dass ihr bei euren größten Anwendungen auf max 750 GDI Handles kommt. Das heißt ja, dass ich eine Anwendung mit ein paar Fenstern und ein paar VSTs mal ganz locker auf die 750 Handles bringen kann. Und dann habe ich noch keinen Source dahinter, der irgendwas sinnvolles macht.

TiGü 2. Sep 2015 09:45

AW: GDI Handles einer Anwendung
 
Zitat:

Zitat von Alex_ITA01 (Beitrag 1314388)
Das der VST eine visuelle Komponente ist weiß ich aber 100 GDI Handles für einen VST? Find ich irgendwie viel oder nicht?

Es wurde in früheren Beiträgen geschrieben, dass ihr bei euren größten Anwendungen auf max 750 GDI Handles kommt. Das heißt ja, dass ich eine Anwendung mit ein paar Fenstern und ein paar VSTs mal ganz locker auf die 750 Handles bringen kann. Und dann habe ich noch keinen Source dahinter, der irgendwas sinnvolles macht.

Probiere das doch mal aus.
Nach deiner Rechnung müsstest du ja nur sieben bis acht Formulare mit den VST erstellen und anzeigen lassen.
Wächst das alles linear?

Alex_ITA01 2. Sep 2015 10:53

AW: GDI Handles einer Anwendung
 
Jup habe ich gemacht.
Ist nicht linear aber sind genau 50 Fenster mit jeweils einem VST drinne. Dann sind die 700 GDIs erreicht...

TiGü 2. Sep 2015 11:19

AW: GDI Handles einer Anwendung
 
Na dann ist doch jetzt alles soweit in Butter, oder?

Alex_ITA01 2. Sep 2015 11:36

AW: GDI Handles einer Anwendung
 
Prinzipiell schon aber dennoch würde ich gerne die Handles ermitteln, die zwischen den beiden Werten sich "verstecken". Mir geht es doch nicht um irgendwelche max Anzahlen von Komponenten oder Fenstern oder sonstwas. Ich will wissen was da noch GDI Handles benutzt.

TiGü 2. Sep 2015 12:55

AW: GDI Handles einer Anwendung
 
Solange du nicht den Windows-Quelltext vorzuliegen hast, kannst du da anscheinend nicht ran.

Grund:
Zitat:

The 'All GDI' value is taken from Windows API call (GetGuiResources), and it usually contains a value larger than 'GDI Total', probably because it also counts some internal kernel GDI objects that are not included in the GDI objects table of the process.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:10 Uhr.
Seite 3 von 3     123   

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