AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Was mache ich mit der MemoryLeak Ausgabe?
Thema durchsuchen
Ansicht
Themen-Optionen

Was mache ich mit der MemoryLeak Ausgabe?

Ein Thema von Sherlock · begonnen am 11. Nov 2016 · letzter Beitrag vom 15. Nov 2016
Antwort Antwort
Seite 2 von 4     12 34      
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.798 Beiträge
 
Delphi 12 Athens
 
#11

AW: Was mache ich mit der MemoryLeak Ausgabe?

  Alt 11. Nov 2016, 14:18
Danke für den Tipp. Ich werde dann mal auch das Delphi-LeakCheck testen. Wie war die Kirmes?

Erster Abtörner...genau wie beim FastMM4 steht nicht, was man in die Bibliothekspfade oder Suchpfade eintragen soll. Das ist...so was von Grundlage, ohne läuft gar nichts. Schade eigentlich, denn ansonsten sieht das schon viel professioneller und aufgeräumter als FastMM4 aus.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Benutzerbild von sh17
sh17

Registriert seit: 26. Okt 2005
Ort: Radebeul
1.640 Beiträge
 
Delphi 11 Alexandria
 
#12

AW: Was mache ich mit der MemoryLeak Ausgabe?

  Alt 11. Nov 2016, 14:18
Zur genaueren Analyse von Memoryleaks empfehle ich LeakCheck. Mit dem usage Graph kann man dann bei einem umfangreicheren Leak leichter das Rootobjekt identifizieren.
Ist das als Ersatz für FastMM ?
Sven Harazim
--
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.798 Beiträge
 
Delphi 12 Athens
 
#13

AW: Was mache ich mit der MemoryLeak Ausgabe?

  Alt 11. Nov 2016, 14:46
Stevie: Was muss ich einstellen, damit das wie FastMM4 eine Ausgabedatei erstellt? Im Moment ist das alles etwas sehr unübersichtlich. Nachdem ich LeakCheck in die öffentlichen Dokumente geklont habe und im Delphi die Bibliothekspfade für Win32, Win64 und OSX um diesen Pfad ergänzt habe steht jetzt in der DPR meines Projekts folgendes:
Delphi-Quellcode:
uses
  //FastMM4,
  LeakCheck,
  System.StartUpCopy,
  LeakCheck.Utils,
  FMX.Forms,

//etc.

begin
  if DebugHook <> 0 then
    System.ReportMemoryLeaksOnShutdown := True;
  Application.Initialize;
//und so weiter

end;
Ich finde in der LeakCheck.Configuration.inc keinen Schalter zum Erzeugen eines Reports, also starte ich einfach mal mein Programm spiele ein wenig damit und beende es, am Ende erscheint ein riesiger Dialog, der unübersichtlicher ist als der von FastMM4 (Scrollboxen oder Memos mit Scrollbars darf man in Dialogen verwenden, oder?). Wo mache ich LeakTest klar, daß der Dialog sinnlos ist, und bitte eine Datei geschrieben werden sollte?

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#14

AW: Was mache ich mit der MemoryLeak Ausgabe?

  Alt 11. Nov 2016, 14:49
Wo mache ich LeakTest klar, daß der Dialog sinnlos ist, und bitte eine Datei geschrieben werden sollte?
Steht doch in der Beschreibung:

Zitat:
It plugs into default ReportMemoryLeaksOnShutdown
You can use ReportMemoryLeaksOnShutdown on any platforms.

The output varies across platforms:
On Windows message box containing the leaks is shown, this behavior can be changed by defining NO_MESSAGEBOX conditional in which case the output will be sent into the IDE Event log (by OutputDebugString)
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.798 Beiträge
 
Delphi 12 Athens
 
#15

AW: Was mache ich mit der MemoryLeak Ausgabe?

  Alt 11. Nov 2016, 14:53
Das habe ich auch gesehen, aber: Der IDE Eventlog ist nun wirklich nicht so übersichtlich wie eine simple Datei.

Edith sagt: abgesehen davon funktioniert es auch einfach nicht. Ich habe NO_MESSAGEBOX in den Projektoptionen gesetzt, und auch direkt in der DPR, ohne spürbare Änderung. Die Messagebox kommt weiterhin. Ich lass die Sache jetzt noch bis Montag köcheln, und setze mich mit frischer Geduld wieder für ein bis zwei Stündchen dran.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann

Geändert von Sherlock (11. Nov 2016 um 14:58 Uhr)
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#16

AW: Was mache ich mit der MemoryLeak Ausgabe?

  Alt 11. Nov 2016, 14:56
Wenn du keine Option dafür findest: Aus dem IDE Eventlog kannst du auch den Eintrag selektieren, kopieren und in eine Datei einfügen.
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.016 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#17

AW: Was mache ich mit der MemoryLeak Ausgabe?

  Alt 11. Nov 2016, 15:37
Zur genaueren Analyse von Memoryleaks empfehle ich LeakCheck. Mit dem usage Graph kann man dann bei einem umfangreicheren Leak leichter das Rootobjekt identifizieren.
Ist das als Ersatz für FastMM ?
Nein, LeakCheck ist einzig fürs MemoryLeak finden geschrieben und keinesfalls als sonstiger Ersatz für FastMM.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.798 Beiträge
 
Delphi 12 Athens
 
#18

AW: Was mache ich mit der MemoryLeak Ausgabe?

  Alt 14. Nov 2016, 15:49
Sodele, hab mich das Wochenende über entspannt, und nach weiterem kurzem und erfolglosem Kampf mich gegen LeakCheck entschieden. Also wieder zu FastMM4. Die drei MemoryLeaks, die ich selbst verschuldet habe, sind ausgemerzt. Jetzt bleiben "nur" noch runde 240 Leaks. Problematisch bei denen ist folgendes:

Zitat:
A memory block has been leaked. The size is: 52

This block was allocated by thread 0x1E5C, and the stack trace (return addresses) at the time was:
407405 [System.pas][System][@ReallocMem$qqrrpvi][4806]
40CC0F [System.pas][System][DynArraySetLength$qqrrpvpvipi][34250]
40CD52 [System.pas][System][@DynArraySetLength$qqrv][34348]
40F0CC [System.pas][System][TInstBucket.AddInstItem$qqrip16System.TInstItem][36911]
407362 [System.pas][System][AllocMem$qqri][4557]
408DD2 [System.pas][System][TMonitor.Create$qqrv][18091]
40F567 [System.pas][System][TInstHashMap.RegisterWeakRef$qqrpvt1][37124]
40F857 [System.pas][System][RegisterWeakRef$qqrpvxp14System.TObject][37215]
40F8FA [System.pas][System][@IntfWeakCopy$qqrr44System.%DelphiInterface$17Syst em.IInterface%44System.%DelphiInterface$17System.I Interface%][37314]
82079F [FMX.Controls.pas][FMX.ListBox][Controls.%TContentInflater__1$p24Fmx.Listbox.TList BoxItem%.$bctr$qqrx91System.%DelphiInterface$64Fmx .Controls.%IInflatableContent__1$p24Fmx.Listbox.TL istBoxItem%%][8558]
814666 [FMX.ListBox.pas][FMX.ListBox][Listbox.TCustomListBox.$bctr$qqrp25System.Classes. TComponent][1680]

The block is currently used for an object of class: Unknown
Weder sehe ich, welche "meiner" Units daß verbockt hat, noch kann ich überhaupt erkennen, um welche Klasse es hier geht.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.156 Beiträge
 
Delphi 10 Seattle Enterprise
 
#19

AW: Was mache ich mit der MemoryLeak Ausgabe?

  Alt 14. Nov 2016, 16:11
40F567 [System.pas][System][TInstHashMap.RegisterWeakRef$qqrpvt1][37124]
Ganz dumme Frage: 10 Seattle oder 10.1 Berlin? 10 Seattle hatte auf Windows doch noch keine schwachen Referenzen, das wird dann wohl einfach ein Leak in der RTL/FMX/VCL sein (oder?).
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.798 Beiträge
 
Delphi 12 Athens
 
#20

AW: Was mache ich mit der MemoryLeak Ausgabe?

  Alt 14. Nov 2016, 16:16
Berlin mit Update 1... und es ist FMX. *Seufz*

Ich werde mal schauen, ob die Leaks mehr werden oder ob die Zahl konstant bleibt. Das bekomme ich nach starten, einmal alles klicken und schließen:
Zitat:
This application has leaked memory. The small block leaks are (excluding expected leaks registered by pointer):

37 - 52 bytes: Unknown x 22
53 - 68 bytes: Unknown x 209
245 - 276 bytes: Unknown x 11
Alle Details dazu sehen bis auf Adressen und ähnlichen "Kleinkram" nahezu identisch aus... Der Löwenanteil macht aber ein Leak im Zusammenhang mit Listboxen aus, und die, also ausgerechnet die, verwende ich nur statisch. Da ist nix zu Laufzeit hinzugefügtes bei

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:21 Uhr.
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