![]() |
Speicherverbrauch der Anwendung
Hi DPler,
ich stehe gerade auf dem Schlauch :roll: Wie kann ich in meiner Anwendung (DLL) herausfinden, wieviel Speicher diese verbraucht :?: ...:cat:... P.S. Anwedung muss unter Windows 2000 bzw. neuer laufen. Ältere und Desktop-Systeme können vernachlässigt werden. |
Re: Speicherverbrauch der Anwendung
Von der DLL alleine wird es schwer werden. Aber vom ganzen Prozess bekommst du den belegten Speicher mit GetProcessMemoryInfo und der Struktur TProcessMemoryCounters.
|
Re: Speicherverbrauch der Anwendung
Hi Luckie,
der ganze Process wäre aber total uninteressant innerhalb eines Webservers, wo über 15 zusätzliche DLLs verschiedener Hersteller laufen ;-) Trotzdem Danke ;-) ...:cat:... |
Re: Speicherverbrauch der Anwendung
Kannst du dir nicht eine Demo-Anwendung schreiben? dann weißt du wenigsten dass deien DLL x KB + y KB braucht.
Nein, das hilft auch nicht. War ein Griff ins Klo. :? |
Re: Speicherverbrauch der Anwendung
Zitat:
...:cat:... |
Re: Speicherverbrauch der Anwendung
Du könntest die Demo-Anwendung zuerst starten, ohne die DLL zu linken, dann weißt du, wieviel dein Grundgerüst verbraucht (Buttons, Fenster, weiß der Geier). Dann linkst du die DLL und führst die Funktionen der DLL aus und beobachtest, was geschieht. Ich denke doch mal, daß die paar Einträge in der WndProc um die Funktionen der DLL aufzurufen nicht so viel speicher benötigen, daß du wegen Fehlwerten zu sehr verzweifeln musst.
Und wenn du den Verbrauch über die Zeit messen willst, weil du wissen willst, ob du alle Speicherblööcke wieder freigibst, die du in der DLL reservierst, geht das auf diese weise auch. Wenn nach jedem Aufruf der verbrauchte Speicher nicht weniger wird, weißt du, daß die Funktion speicher alloziiert hat, aber nicht wieder freigegeben, und dem kannst du dann nachgehen. Wenn viele Fehler drin sind ist das zwar eine anstrengende Arbeit, aber das ist Debugging ja immer :mrgreen: |
Re: Speicherverbrauch der Anwendung
Leute - ich will keine Demo-Anwendung. Ich muss die DLL im "echten Leben" überwachen können, wenn diese aktiv durch mehrere User genutzt wird. Nur so kann ich die wirklich testen ;-)
Bitte keine Antworten zu Lösungen, welche ausserhalb der DLL angewandt werden :!: Danke :!: ...:cat:... P.S. Wir reden hier über momentan 2.000 gleichzeitige Nutzer. Über 20.000 verschieden am Tag mit noch mehr Sessions. |
Re: Speicherverbrauch der Anwendung
Vielleicht reicht System.GetHeapStatus() aus (siehe Delphi-Hilfe wg. mit/ohne ShareMem).
|
Re: Speicherverbrauch der Anwendung
Danke. Das sieht vielversprechend aus ;-) Und ShareMem kommt nicht zum Einsatz, da es eine DLL für den MS IIS ist.
...:cat:... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:01 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