OBS/Adminhilfe/MemoryLeak
Dies ist eine zugriffsgeschützte Seite.
- System Überwachung
- DEP deaktivieren
- Darstellung unter Windows 7
- Einwahl auf Windows 2000 Server
- Preislisten
- Datenbank Sicherung
- Customize
- Zentrale
- Support Macro
- Service Debug
- Historienprotokoll (Datenänderung OBS)
- Fernwartungsprobleme
- Startparameter
- Fehler beim Kassenabschluss
- Diverse Informationen
- A ras.pbk
- B Command Line Interpreter
- C File Zilla Benutzer XML erzeugen
- D1 OBS_UPDATE.EXE zum OBS Update Server hochladen
- D2 SUPPORT_MACRO zum OBS Update Server hochladen
- H1 Remote Service Protokoll-Übersicht (Alles)
- H Remote ServiceProtokoll-Übersicht
- I Remote Service Commands
- I1 (Admin) Globaler Hinweis für Updates
- J Liste der OBS Updates
- K Angemeldete Service Firmen
- L Systeminformationen einlesen
- M Kundendaten anzeigen
- M1 Kundendatenbankinformationen anzeigen
- N Kundendaten einlesen
- O Kunden-Update Informationen anzeigen
- P Modul Registrierung OBS
- Q App Verwaltung
- S1 Firmen Statistik Protokolle OBS
- S2 Statistik Notfallkassen
MemoryLeaks
Hier finden Sie eine Sammlung von Tools zur Speicherüberwachung (Memory Manager) und deren verwendung
FastMM
FastMM dient zum protokollieren und unterstützt beim Finden von MemoryLeaks.
Anwendung
Zum aktivieren reicht es "fastMM4" als erste Unit in der Uses-Sektion der Projekt .dpr zu platzieren.
Wenn nun ein Projekt gestartet wird, fängt FastMM automatisch an den Speicher zu überwachen. (sehr Performancelastig)
Beim Regulären verlassen der Anwendung (kein Strg+F2) wird eine LogDatei im Root abgelegt (obs_MemoryManager_EventLog.txt) in der die gefundenen Leaks samt CallStack protokolliert werden (direkter Support der MadExcept "stack tracing library")
Am Ende der Datei ist eine Zusammenfassung zu finden:
Es empfiehlt sich erst die Zusammenfassung nach auffällig häufig vorkommenden Klassen zu prüfen (z.B.: xTx_DebugLine) und damit dann die Datei zu durchsuchen.
Ausnahmen Registrieren
Um Leaks, die nicht zu vermeiden sind zu ignorieren, können diese mit MyRegisterExpectedMemoryLeak aus G_MadExcept registriert werden.
Beispiel: - global erzeugte Klassen in Initialization von lib_Login GL_UserLog := TLoginData.Create(); MyRegisterExpectedMemoryLeak(GL_UserLog);
In finalization wird die Freigabe zwar korrekt implementiert, aber das Programmende kommt vor der eigentliche Freigabe der Variable.
Installation
Die Neuste Version ist unter zu finden: \\obs-development\Freigaben\OBS_Programm_Update_XE\OBS_SOURCE\Neue Libs\FastMM.zip
und muss in den lokalen Lib-Ordner kopiert werden: c:\Bergau\OBS\dev\lib\
Der Pfad zu FastMM muss in den Bibliotheks- und Suchpfade hinterlegt werden: $(BDSUSERDIR)\lib\FastMM
FastMM_FullDebugMode.dll
Damit die Protokollierung vollständig funktioniert muss die DLL aus \\obs-development\Freigaben\OBS_Programm_Update_XE\OBS_SOURCE\Neue Libs\FastMM.zip\FastMM\FullDebugMode DLL\FastMM_FullDebugMode.dll in das Rootverzeichnis des Projektes Kopiert werden (z.B.: c:\Bergau\OBS\dev\projekte\OBS\)
Diese kann bei Bedarf über c:\Bergau\OBS\dev\lib\FastMM\FullDebugMode DLL\FastMM_FullDebugMode.dpr neu compiliert werden. Dies wird teilweise nötig, wenn die FastMM4Options.inc angepasst werden muss. Zum Beispiel zum deaktivieren vom Define DisableLoggingOfMemoryDumps (zusätzliches Protokollieren von Speicherbereichen in der txt)

