AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi FastMM Memory Leaks : Lesen und verstehen von Stacktrace
Thema durchsuchen
Ansicht
Themen-Optionen

FastMM Memory Leaks : Lesen und verstehen von Stacktrace

Ein Thema von taveuni · begonnen am 8. Sep 2014 · letzter Beitrag vom 16. Sep 2014
Antwort Antwort
Seite 1 von 6  1 23     Letzte »    
taveuni

Registriert seit: 3. Apr 2007
Ort: Zürich
526 Beiträge
 
Delphi 11 Alexandria
 
#1

FastMM Memory Leaks : Lesen und verstehen von Stacktrace

  Alt 8. Sep 2014, 12:17
Hallo zusammen,
Auf meine alten Tage muss ich in einem mit XE2 erstellten Projekt ein Memoryleak suchen. Ich habe FastMM mit Fulldebugmode eingebunden und schon mal einige Leaks gefixt. Allerdings waren dies beim beenden des Dienstes nicht freigegebene Objekte. Das Problem tritt aber zur Laufzeit auf. Nun: Trotz Suche in diversern Foren haben ich nicht genau herausgefunden wie ich den Stacktrace deuten kann. Zum Beispiel hier:
Code:
A memory block has been leaked. The size is: 12

This block was allocated by thread 0x24A4, and the stack trace (return addresses) at the time was:
404ADE [System.pas][System][@GetMem$qqri][3454]
468660 [System.Generics.Defaults.pas][System.Generics.Defaults][Generics.Defaults.MakeInstance$qqrpvi][145]
468CF3 [System.Generics.Defaults.pas][System.Generics.Defaults][Generics.Defaults.Comparer_Selector_Binary$qqrp24System.Typinfo.TTypeInfoi][760]
4695A4 [System.Generics.Defaults.pas][System.Generics.Defaults][Generics.Defaults._LookupVtableInfo$qqr49System.Generics.Defaults.TDefaultGenericInterfacep24System.Typinfo.TTypeInfoi][1441]
67893A [System.Generics.Defaults.pas][uDetectionObjects][Generics.Defaults.%TComparer__1$20System.Types.TPointF%.Default$qqrv][1642]
673AE8 [System.Generics.Collections.pas][uDetectionObjects][Generics.Collections.%TList__1$20System.Types.TPointF%.$bctr$qqrv][663]
815B8B [uDataStorage.pas][uDataStorage][TDataStorage.GetPolygonFromXml$qqrx20System.UnicodeString][363]
81B21D [uDataStorage.pas][uDataStorage][TDataStorage.AddParkingLots$qqrip25Udetectionobjects.TCameraii][1169]
70A4F5 [MemDS][TMemDataSet.GetFieldData$qqrp14Data.Db.TFieldpvo]
6DF4D4 [Data.DB.pas][Data.DB][Db.TDataSet.FieldByName$qqrx20System.UnicodeString][11805]
8147E2 [uDataStorage.pas][uDataStorage][TDataStorage.GetConfiguration$qqrv][171]

The block is currently used for an object of class: Unknown

The allocation number is: 5291

Current memory dump of 256 bytes starting at pointer address 7EF6CFE8:
5C A6 87 00 01 00 00 00 08 00 00 00 86 14 66 78 00 00 00 00 61 D2 F6 7E 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 82 17 00 00 DE 4A 40 00 6B 5F 40 00 DA 65 40 00 A0 5F 40 00 DA 65 40 00
BF 40 45 00 67 43 45 00 6A 06 6B 00 63 3A 6B 00 8B 91 66 00 2D 43 6B 00 A4 24 00 00 3C 26 00 00
FA 4A 40 00 89 5F 40 00 25 66 40 00 C2 5F 40 00 CF 5F 40 00 51 41 45 00 CF 5F 40 00 A6 43 45 00
CF 5F 40 00 C3 07 6B 00 CF 5F 40 00 08 00 00 00 88 15 40 00 9A 33 A4 85 98 D2 8A 00 80 80 80 80
65 CC 5B 7A 80 80 80 80 00 00 00 00 B1 C7 F6 7E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
86 18 00 00 DE 4A 40 00 6B 5F 40 00 DA 65 40 00 4E EE 83 00 91 ED 83 00 5E D4 83 00 36 93 26 00
58 FB 45 00 D9 FE 45 00 BE 7B 40 00 8A 33 A9 76 D8 15 00 00 3C 26 00 00 FA 4A 40 00 89 5F 40 00
\  ¦  ‡  . . . . . . . . . †  . f x . . . . a Ò  ö  ~  . . . . . . . .
. . . . . . . . ‚  . . . Þ  J @  . k _  @  . Ú  e @  . *  _  @  . Ú  e @  .
¿  @  E . g C E . j . k . c : k . ‹  ‘  f . -  C k . ¤  $  . . < & . .
ú  J @  . ‰  _  @  . %  f @  .   _  @  . Ï  _  @  . Q A E . Ï  _  @  . ¦  C E .
Ï  _  @  . à . k . Ï  _  @  . . . . . ˆ  . @  . š  3  ¤  …  ˜  Ò  Š  . €  €  €  €
e Ì  [  z €  €  €  €  . . . . ±  Ç  ö  ~  . . . . . . . . . . . . . . . .
†  . . . Þ  J @  . k _  @  . Ú  e @  . N î  ƒ  . ‘  í  ƒ  . ^  Ô  ƒ  . 6  “  & .
X û  E . Ù  þ  E . ¾  {  @  . Š  3  ©  v Ø  . . . < & . . ú  J @  . ‰  _  @  .
Es scheint sich um eine generische Liste zu handeln. Aber wo ist springende Punkt um welche Liste/Funktion es sich handelt?
Oder hier:
Code:
A memory block has been leaked. The size is: 12

This block was allocated by thread 0x24A4, and the stack trace (return addresses) at the time was:
404ADE [System.pas][System][@GetMem$qqri][3454]
468660 [System.Generics.Defaults.pas][System.Generics.Defaults][Generics.Defaults.MakeInstance$qqrpvi][145]
468CF3 [System.Generics.Defaults.pas][System.Generics.Defaults][Generics.Defaults.Comparer_Selector_Binary$qqrp24System.Typinfo.TTypeInfoi][760]
4695A4 [System.Generics.Defaults.pas][System.Generics.Defaults][Generics.Defaults._LookupVtableInfo$qqr49System.Generics.Defaults.TDefaultGenericInterfacep24System.Typinfo.TTypeInfoi][1441]
67893A [System.Generics.Defaults.pas][uDetectionObjects][Generics.Defaults.%TComparer__1$20System.Types.TPointF%.Default$qqrv][1642]
673AE8 [System.Generics.Collections.pas][uDetectionObjects][Generics.Collections.%TList__1$20System.Types.TPointF%.$bctr$qqrv][663]
6733A7 [uDetectionObjects.pas][uDetectionObjects][TObjectPolygon.$bctr$qqrii][1137]
671F2B [uDetectionObjects.pas][uDetectionObjects][TObjectSensor.$bctr$qqrii][587]
6729DC [uDetectionObjects.pas][uDetectionObjects][TParkingLot.SetObjectSensorActive$qqrxo][865]
81B1C4 [uDataStorage.pas][uDataStorage][TDataStorage.AddParkingLots$qqrip25Udetectionobjects.TCameraii][1164]
70A4F5 [MemDS][TMemDataSet.GetFieldData$qqrp14Data.Db.TFieldpvo]

The block is currently used for an object of class: Unknown

The allocation number is: 5279

Current memory dump of 256 bytes starting at pointer address 7EF6CF50:
5C A6 87 00 01 00 00 00 08 00 00 00 F7 77 42 79 00 00 00 00 20 7F F6 7E 00 00 00 00 00 00 00 00
68 36 41 00 00 00 00 00 AB 14 00 00 DE 4A 40 00 60 86 46 00 F3 8C 46 00 A4 95 46 00 3A 89 67 00
E8 3A 67 00 8B 5B 81 00 1D B2 81 00 F5 A4 70 00 D4 F4 6D 00 E2 47 81 00 A4 24 00 00 A4 24 00 00
FA 4A 40 00 C6 A4 40 00 C9 A1 40 00 00 A2 40 00 72 A3 40 00 FF BE 7C 00 38 29 77 00 9A 80 7C 00
E8 92 7C 00 36 79 6F 00 76 94 7C 00 0C 00 00 00 00 00 00 00 79 EB 99 87 5C A6 87 00 01 00 00 00
08 00 00 00 86 14 66 78 00 00 00 00 61 D2 F6 7E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
82 17 00 00 DE 4A 40 00 6B 5F 40 00 DA 65 40 00 A0 5F 40 00 DA 65 40 00 BF 40 45 00 67 43 45 00
6A 06 6B 00 63 3A 6B 00 8B 91 66 00 2D 43 6B 00 A4 24 00 00 3C 26 00 00 FA 4A 40 00 89 5F 40 00
\  ¦  ‡  . . . . . . . . . ÷  w B y . . . .      ö  ~  . . . . . . . .
h 6  A . . . . . «  . . . Þ  J @  . `  †  F . ó  Œ  F . ¤  •  F . : ‰  g .
è  : g . ‹  [    . . ²    . õ  ¤  p . Ô  ô  m . â  G   . ¤  $  . . ¤  $  . .
ú  J @  . Æ  ¤  @  . É  ¡  @  . . ¢  @  . r £  @  . ÿ  ¾  |  . 8  ) w . š  €  |  .
è  ’  |  . 6  y o . v ”  |  . . . . . . . . . y ë  ™  ‡  \  ¦  ‡  . . . . .
. . . . †  . f x . . . . a Ò  ö  ~  . . . . . . . . . . . . . . . .
‚  . . . Þ  J @  . k _  @  . Ú  e @  . *  _  @  . Ú  e @  . ¿  @  E . g C E .
j . k . c : k . ‹  ‘  f . -  C k . ¤  $  . . < & . . ú  J @  . ‰  _  @  .
Es sind hier uDetection.pas und uDataStorage.pas aufgeführt.

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

This block was allocated by thread 0x24A4, and the stack trace (return addresses) at the time was:
404ADE [System.pas][System][@GetMem$qqri][3454]
405F6B [System.pas][System][TObject.NewInstance$qqrv][13000]
4065DA [System.pas][System][@ClassCreate$qqrpvzc][14164]
671EE6 [uDetectionObjects.pas][uDetectionObjects][TObjectSensor.$bctr$qqrii][584]
4138C9 [FastMM4.pas][FastMM4][DebugFreeMem$qqrpv][8900]
6729DC [uDetectionObjects.pas][uDetectionObjects][TParkingLot.SetObjectSensorActive$qqrxo][865]
81B1C4 [uDataStorage.pas][uDataStorage][TDataStorage.AddParkingLots$qqrip25Udetectionobjects.TCameraii][1164]
70A4F5 [MemDS][TMemDataSet.GetFieldData$qqrp14Data.Db.TFieldpvo]
6DF4D4 [Data.DB.pas][Data.DB][Db.TDataSet.FieldByName$qqrx20System.UnicodeString][11805]
8147E2 [uDataStorage.pas][uDataStorage][TDataStorage.GetConfiguration$qqrv][171]
8386C0 [uDetectionCore.pas][uDetectionCore][TDetectionCore.OnDatabaseConnected$qqrp14System.TObject][186]

The block is currently used for an object of class: TObjectSensor

The allocation number is: 5273

Current memory dump of 256 bytes starting at pointer address 7EDE0470:
A0 A4 66 00 D0 60 DF 7E E0 62 DF 7E 19 00 00 00 0A 00 00 00 60 00 00 00 64 00 00 00 5C 00 00 00
01 00 00 00 02 00 00 00 02 00 00 00 B0 CF DF 7E 00 00 00 00 8F 68 D5 C4 00 00 00 00 71 0B DE 7E
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 BE 14 00 00 DE 4A 40 00 6B 5F 40 00 E9 BB 40 00
DA 65 40 00 DE B9 7F 00 3A B4 7F 00 9B C9 7F 00 92 7A 80 00 70 7B 80 00 26 C0 80 00 EC 5B 81 00
A4 24 00 00 A4 24 00 00 FA 4A 40 00 89 5F 40 00 25 66 40 00 C2 5F 40 00 4F BC 40 00 5B BB 40 00
F9 98 40 00 E9 97 40 00 3F 60 40 00 82 5F 40 00 25 66 40 00 30 00 00 00 10 A8 7F 00 A5 5F A7 86
98 D2 8A 00 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80
80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 5A A0 58 79 80 80 80 80 00 00 00 00 B1 04 DE 7E
*  ¤  f . Р `  ß  ~  à  b ß  ~  . . . . . . . . `  . . . d . . . \  . . .
. . . . . . . . . . . . °  Ï  ß  ~  . . . .   h Õ  Ä  . . . . q . Þ  ~
. . . . . . . . . . . . . . . . ¾  . . . Þ  J @  . k _  @  . é  »  @  .
Ú  e @  . Þ  ¹    . : ´    . ›  É    . ’  z €  . p {  €  . & À  €  . ì  [    .
¤  $  . . ¤  $  . . ú  J @  . ‰  _  @  . %  f @  .   _  @  . O ¼  @  . [  »  @  .
ù  ˜  @  . é  —  @  . ?  `  @  . ‚  _  @  . %  f @  . 0  . . . . ¨    . ¥  _  §  †
˜  Ò  Š  . €  €  €  €  €  €  €  €  €  €  €  €  €  €  €  €  €  €  €  €  €  €  €  €  €  €  €  €
€  €  €  €  €  €  €  €  €  €  €  €  €  €  €  €  Z *  X y €  €  €  €  . . . . ±  . Þ  ~
Hier wird sogar das Objekt: TObjectSensor aufgeführt und drei units welche von uns sind.
Macht die Reihenfolge der Auflistung einen Sinn? Wenn ja welchen? Villeicht gibt es ja irgendwo eine Erklärung dazu - nur finde ich sie nicht?
Danke für Eure Anregungen.
Die obige Aussage repräsentiert meine persönliche Meinung.
Diese erhebt keinen Anspruch auf Objektivität oder Richtigkeit.
  Mit Zitat antworten Zitat
Der schöne Günther

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

AW: FastMM Memory Leaks : Lesen und verstehen von Stacktrace

  Alt 8. Sep 2014, 12:36
Folgendes Projekt

Delphi-Quellcode:
program Project1;

{$APPTYPE CONSOLE}
{$R *.res}

uses
  FastMM4,
  Unit2 in 'Unit2.pas';

begin
   ReportMemoryLeaksOnShutdown := True;
   createLeak();
end.
Delphi-Quellcode:
unit Unit2;

interface
   procedure createLeak(); forward;

implementation

procedure createLeak();
begin
   TObject.Create();
end;

end.
erzeugt folgende Ausgabe:
Code:
--------------------------------2014/9/8 13:33:46--------------------------------
A memory block has been leaked. The size is: 12

This block was allocated by thread 0x1700, and the stack trace (return addresses) at the time was:
4040D6 [System.pas][System][@GetMem$qqri][4305]
4048CB [System.pas][System][TObject.NewInstance$qqrv][15436]
404ECE [System.pas][System][@ClassCreate$qqrpvzc][16746]
404900 [System.pas][System][TObject.$bctr$qqrv][15500]
405B50 [System.pas][System][@StartExe$qqrp23System.PackageInfoTablep17System.TLibModule][21884]
41D35B [Unit2.pas][Unit2][createLeak$qqrv][10]
41F3FD
76B3338A [BaseThreadInitThunk]
777F9F72 [Unknown function at RtlInitializeExceptionChain]
777F9F45 [Unknown function at RtlInitializeExceptionChain]

The block is currently used for an object of class: TObject

The allocation number is: 110

Current memory dump of 256 bytes starting at pointer address 7EF6F520:
10 14 40 00 00 00 00 00 31 85 50 19 78 85 42 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
. . @  . . . . . 1  …  P . x …  B . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

--------------------------------2014/9/8 13:33:46--------------------------------
This application has leaked memory. The small block leaks are (excluding expected leaks registered by pointer):

5 - 12 bytes: TObject x 1

Note: Memory leak detail is logged to a text file in the same folder as this application. To disable this memory leak check, undefine "EnableMemoryLeakReporting".

Gehe von unten die letzten dir bekannten Units durch. In diesem Fall ist es
  • Unit2.pas
  • Die Methode createLeak
  • Zeile 10

Das wird nie freigegeben.
  Mit Zitat antworten Zitat
taveuni

Registriert seit: 3. Apr 2007
Ort: Zürich
526 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: FastMM Memory Leaks : Lesen und verstehen von Stacktrace

  Alt 8. Sep 2014, 12:44
O.K von unten ist ja schon mal ein sehr guter Hinweis. Ist es möglich die Anzahl der Leaks irgendwie herauszufinden? Eigentlich ist es mir (erstmal) egal wenn beim beenden des Programms ein Objekt welches beim Start erzeugt wurde nicht freigegeben wird. Schön wäre es aber nach einer gewissen Laufzeit zu sehen ob das 12Byte Leak XY 100 Mal aufgetreten ist - oder eben nur ein Mal. Ist so was möglich?
Die obige Aussage repräsentiert meine persönliche Meinung.
Diese erhebt keinen Anspruch auf Objektivität oder Richtigkeit.
  Mit Zitat antworten Zitat
nuclearping

Registriert seit: 7. Jun 2008
708 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

AW: FastMM Memory Leaks : Lesen und verstehen von Stacktrace

  Alt 8. Sep 2014, 12:51
Wenn du in deiner DPR ...

Delphi-Quellcode:
program ...;

uses
  ...;

begin
  ReportMemoryLeaksOnShutdown := TRUE;

  ...
end.
... schreibst, solltest beim Beenden des Programms eine entsprechende Meldung erhalten.
  Mit Zitat antworten Zitat
taveuni

Registriert seit: 3. Apr 2007
Ort: Zürich
526 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: FastMM Memory Leaks : Lesen und verstehen von Stacktrace

  Alt 8. Sep 2014, 13:11
Hallo Nuclearping,
die Meldungen erhalte ich ja (siehe Post 1). Meine Frage bezog sich auf das deuten der Meldungen. Insbesondere wenn es sich um eine "unknown class" handelt und mehrere units/funktionen aufgeführt sind.
Die obige Aussage repräsentiert meine persönliche Meinung.
Diese erhebt keinen Anspruch auf Objektivität oder Richtigkeit.
  Mit Zitat antworten Zitat
pertzschc

Registriert seit: 29. Jul 2005
Ort: Leipzig
305 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: FastMM Memory Leaks : Lesen und verstehen von Stacktrace

  Alt 8. Sep 2014, 13:38
Hallo!
Was passiert denn in den 2 Codestellen:

8147E2 [uDataStorage.pas][uDataStorage][TDataStorage.GetConfiguration$qqrv][171]
8386C0 [uDetectionCore.pas][uDetectionCore][TDetectionCore.OnDatabaseConnected$qqrp14System.TO bject][186]

Christoph
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.004 Beiträge
 
Delphi 2009 Professional
 
#7

AW: FastMM Memory Leaks : Lesen und verstehen von Stacktrace

  Alt 8. Sep 2014, 13:43
O.K von unten ist ja schon mal ein sehr guter Hinweis. Ist es möglich die Anzahl der Leaks irgendwie herauszufinden? Eigentlich ist es mir (erstmal) egal wenn beim beenden des Programms ein Objekt welches beim Start erzeugt wurde nicht freigegeben wird. Schön wäre es aber nach einer gewissen Laufzeit zu sehen ob das 12Byte Leak XY 100 Mal aufgetreten ist - oder eben nur ein Mal. Ist so was möglich?
Ja, indem man den aktuellen Status des FastMM4 Speichermanagers in eine Datei schreibt und diese beobachtet.
Objekte, die leaken, erscheinen dann mit einer stetig wachsenden Anzahl in der Liste.

How do I find memory leaks at run time with FastMM4?
http://mikejustin.wordpress.com/2013...-with-fastmm4/

Strategy or tools to find “non-leak” memory usage problems in Delphi?
http://stackoverflow.com/a/17365483/80901

Step by step Anleitung:

  1. add a call to LogMemoryManagerStateToFile('memory.log', '') in a place where it will be called in intervals
  2. run the application
  3. open the log file with an editor (which auto-refreshes when the file content changes)
  4. watch the first lines of the file, they will contain the memory allocations which occupy the highest amount of memory
  5. if you see a class or memory type constantly has a growing number of instances, this can be the reason of your leak
Michael Justin

Geändert von mjustin ( 8. Sep 2014 um 13:46 Uhr)
  Mit Zitat antworten Zitat
taveuni

Registriert seit: 3. Apr 2007
Ort: Zürich
526 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: FastMM Memory Leaks : Lesen und verstehen von Stacktrace

  Alt 8. Sep 2014, 13:46

Ja, indem man den aktuellen Status des FastMM4 Speichermanagers in eine Datei schreibt und diese beobachtet.
Objekte, die leaken, erscheinen dann mit einer stetig wachsenden Anzahl in der Liste.
Danke! Das werd ich versuchen und mich wieder melden.
Die obige Aussage repräsentiert meine persönliche Meinung.
Diese erhebt keinen Anspruch auf Objektivität oder Richtigkeit.
  Mit Zitat antworten Zitat
sahimba

Registriert seit: 14. Nov 2011
Ort: Berlin, Hauptstadt der DDR
137 Beiträge
 
Delphi 10 Seattle Professional
 
#9

AW: FastMM Memory Leaks : Lesen und verstehen von Stacktrace

  Alt 8. Sep 2014, 13:58
Schön wäre es aber nach einer gewissen Laufzeit zu sehen ob das 12Byte Leak XY 100 Mal aufgetreten ist - oder eben nur ein Mal. Ist so was möglich?
Hoffe, jetzt flamed niemand wegen Werbung... mein Tool "DDDebug" kann das recht elegant. http://ddobjects.de/dddebug
Die UI bietet ein Tab "Statistics" an, welches Dir genau anzeigt, wie viele Objekte einer Klasse (mit Records funktioniert es mit EInschränkungen ebenso) erzeugt wurden, wie viele maximal gleichzeitig lebten etc.
Grüße,
S.
  Mit Zitat antworten Zitat
taveuni

Registriert seit: 3. Apr 2007
Ort: Zürich
526 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: FastMM Memory Leaks : Lesen und verstehen von Stacktrace

  Alt 8. Sep 2014, 14:08
Hallo Sahimba,
Ich hab mir Dein Tool schon angesehen. Mein momentan knausriger Arbeitgeber (was Delphi anbelangt) hat aber abgewunken. Obwohl der Preis ja nicht überaus hoch ist. Ich versuchs mal mit dem Tip von mjustin.
Die obige Aussage repräsentiert meine persönliche Meinung.
Diese erhebt keinen Anspruch auf Objektivität oder Richtigkeit.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 6  1 23     Letzte »    


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:26 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