![]() |
FastMM und/oder ReportMemoryLeaksOnShutdown?
Hallo,
seit einigen Delphi-Versionen gibt es ja den internen MemoryLeaks-Report, wenn man ReportMemoryLeaksOnShutdown auf true setzt. (wo setzt man das eigentlich richtigerweise auf true? Projekt-Quelltext oder OnCreate von der MainForm?) Ich nutze gerne FastMM als erste Unit im Projekt-Quelltext. Was sollte man am Besten nutzen? Reicht das systeminterne ReportMemoryLeaksOnShutdown? Bringt FastMM anstatt mehr? oder am besten beides? |
AW: FastMM und/oder ReportMemoryLeaksOnShutdown?
Deine Frage ist etwas .... konfus.
Delphi-Quellcode:
sagt dir nur, wieviel wovon noch nicht freigegeben wurde. Du hast aber sonst keine Möglichkeiten herauszufinden, wie und wo die Leaks ihren Lauf nahmen. Wenn dir das zum Debuggen deiner Anwendung aber schon reicht, dann brauchst du kein FastMM4.
ReportMemoryLeaksOnShutdown
An die Auflösung eines
Delphi-Quellcode:
und
FullDebugMode
Delphi-Quellcode:
Builds kommt das Delphi-interne Zeug auf jeden Fall aber nicht ran.
LogMemoryLeakDetailToFile
|
AW: FastMM und/oder ReportMemoryLeaksOnShutdown?
hab gerade einen Test gemacht
es kommt zwei mal der gleiche Report raus (nur einmal in englisch und einmal in deutsch bei FastMM). Nur bei FastMM mit dem Zusatz dass man sich noch ein Log schreiben lassen kann |
AW: FastMM und/oder ReportMemoryLeaksOnShutdown?
FastMM hat eine etwas längliche .inc-Datei, über die Du das Verhalten steuern kannst. Dort kannst Du auch den FullDebugMode aktivieren, der eine tiefere Analyse des Speicherverhaltens Deiner Anwendung erlaubt. Dieser hat jedoch seinen Preis: Du wirst merken, dass die Ausführungsgeschwindigkeit sinkt (darum ja auch "Debug-Mode").
Dem FastMM-Paket liegt eine DebugModeDLL bei, die Du für Deine Anwendung verfügbar machen musst, solange dieser Debug-Modus aktiv ist. Wenn Dir das Gefuddel mit der .inc-Datei zu lästig ist, hat Jeremy North eine GUI dafür geschrieben: ![]() |
AW: FastMM und/oder ReportMemoryLeaksOnShutdown?
Die globale Variable ReportMemoryLeaksOnShutdown wird bei den neueren Delphis auch von der separaten unit FastMM benutzt. In sofern gibt es die Unterscheidung zwischen "Intern" und "Extern" nicht. Ich setze das immer in der *.dpr Datei:
Delphi-Quellcode:
{$ifdef Debug}
{$WARN SYMBOL_PLATFORM OFF} ReportMemoryLeaksOnShutdown := DebugHook<>0; {$endif} |
AW: FastMM und/oder ReportMemoryLeaksOnShutdown?
oooh - Cheffe persönlich :-)
das heisst, den "internen FastMM" kann man nicht einstellen? dann bleib ich bei dem "externen" FastMM die GUI schaut gut aus - schöner als das manuelle durchfriemeln von der inc-Datei |
AW: FastMM und/oder ReportMemoryLeaksOnShutdown?
Für den normalen Alltagsbetrieb unterscheidet sich der dem Delphi beigelegte FastMM nicht von der externen Variante - der ist keinen Deut besser oder schlechter.
Nur diese erweiterten Debug-Möglichkeiten kommen lediglich mit der externen Fassung. |
AW: FastMM und/oder ReportMemoryLeaksOnShutdown?
in beiden Varianten muss ich eine Zeile einfügen
für das interene FastMM eben die ReportMemoryLeaksOnShutdown und fürs externe FastMM FastMM4 unter uses da ist es schon egal |
AW: FastMM und/oder ReportMemoryLeaksOnShutdown?
Der interne FastMM steckt ja direkt in der System.pas, bzw. ist in die RTL gelinkt
und da man das alles im Allgemeinen nicht neu kompiliert, wurde dort die INC und alles mögliche Zusatzzeugs entfernt. |
AW: FastMM und/oder ReportMemoryLeaksOnShutdown?
Der "externe" FastMM ist deutlich mächtiger, als der Delphi-FastMM. Der wurde um seine Debugfähigkeiten beschnitten. Der ist sozusagen nur bei Releases zu gebrauchen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:54 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