![]() |
Speicherfresser finden?
Ich habe eine Dienst geschrieben, der periodisch bei einem TimerEvent diverse Prüfungen durchführt. Hierzu habe ich die Anwendung schön sauber in Klassen aufgeteilt, so dass zu "Stillstandszeiten" nur ein oder mehrere Objekte als Controller instanziiert sind. Zum Prüfungszeitpunkt werden dann die notwendigen Objekte lokal erzeugt. Trotzdem steigt der Speicherverbrauch des Dienstes stetig. Wie kann ich die Ursachen hierfür herausfinden? Sollte man z.B. auch lokale Objekte trotz lokaler Deklaration mit .Free freigeben? Bin für jeden Tip bzgl. Speicherfresser finden dankbar.
P.S. Der Dienst hält auch einen Indy HTTP Server hoch, mgl. ist das der Grund? |
Re: Speicherfresser finden?
Wenn du alles sauber aufgeteilt hast könntest du die Geschäftslogik aus einer "normalen" Anwendung heraus aufrufen und mit einem der üblichen Speicherlöcher-Such-Tools (z.B. MemChk) auf die Suche gehen. Dazu müsste es schon diverse Threads hier geben.
|
Re: Speicherfresser finden?
Generell gilt, alles, was man selber erzeugt hat, sollte man auch selber wieder freigeben. Aber ohne den Code, kann man kaum analysieren, wo dein Speicher abhanden kommt.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:12 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