AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Speicherverwendung analysieren

Ein Thema von eike42 · begonnen am 27. Jun 2012 · letzter Beitrag vom 27. Jun 2012
 
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.782 Beiträge
 
Delphi 12 Athens
 
#3

AW: Speicherverwendung analysieren

  Alt 27. Jun 2012, 09:05
Praktisch gesehn und da es in Delphi (eigentlich) keine zentrale Stelle gibt, wo reservierter Speicher "registriert" wird, kann man im Nachhinein garnicht feststellen was sich in welchem Speicherbereich befindet.

Nimm dir einfach mal sowas wie Integer, Records oder ein Array[x..y] of Char. Da hast du nur den Daten-Inhalt im RAM rumliegen, aber nirgendwo ist die RTTI direkt damit verknüpft.
(z.B. 4 Byte im Speicher können also ganz gut ein Integer, 4 Bytes, 2 Words, ein Array[0..3] of AnsiChar oder auch garnichts sein, da diese 4 Bytes grade nicht benutzt werden)

Man kann höchstens über windige und nicht immer zuverlässige Tests versuchen rauszufinden, ob es sich z.B. um ein Objekt handet. Seit D2009 könnte man eventuell auch noch AnsiStrings und UnicodeStrings erkennen. (alles immer schön mit der Chance auf viele False-Positives)

Man könnte den FastMM in den FullDebug-Modus versetzen, oder sich selbst dazwischenhängen, dann jeweils beim reservieren von Speicher sich den Stacktrace, bzw. die Rücksprungadresse ansehn, und bekommt so mit wer und von wo die Anfrage kommt, worüber man besser erkennen kann, um was es sich handelt, da der Speicher von Strings und Objekten ja standardmäßig in ganz bestimmten Prozeduren/Methoden reserviert wird.
Wenn man sich diese infos dann alle merkt, dann könnte man auch später oftmals noch gut erkennen was von wo kam.
Es gibt da auch schon ein irgendwelche Frameworks, welche einem dabei helfen. (Ich glaub vor Kurzem war auch was zum Speicheranalysieren hier in der DP zu finden)
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (27. Jun 2012 um 09:10 Uhr)
  Mit Zitat antworten Zitat
 


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 17:07 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