AGB  ·  Datenschutz  ·  Impressum  







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

Speicherbereinigung von Strings

Ein Thema von 3_of_8 · begonnen am 15. Jul 2007 · letzter Beitrag vom 18. Jul 2007
Antwort Antwort
Seite 3 von 3     123   
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#21

Re: Speicherbereinigung von Strings

  Alt 17. Jul 2007, 13:56
öhm...

Delphi-Quellcode:
PStringContainer = ^TStringContainer;
TStringContainer = record
  s: string;
end;

//string "sichern"
New(MyPStringContainer);
MyPStringContainer.s := 'bla';
//und dann record in ne liste packen.

//string freigeben
Dispose(MyPStringContainer);
soltle das nicht reichen?
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#22

Re: Speicherbereinigung von Strings

  Alt 17. Jul 2007, 14:00
Ja, aber dann könnte man sich den Record schenken und gleich nen String nehmen.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#23

Re: Speicherbereinigung von Strings

  Alt 17. Jul 2007, 14:13
Meine Hashmap speichert Pointer, und da wollte ich DGL-Luke's Version nehmen.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Tyrael Y.

Registriert seit: 28. Jul 2003
Ort: Stuttgart
1.093 Beiträge
 
Delphi 2007 Professional
 
#24

Re: Speicherbereinigung von Strings

  Alt 17. Jul 2007, 14:58
Delphi-Quellcode:
type
  PRecordType = ^TRecordType;
  TRecordType = record
    Name: string;
    Bla: string
  end;

procedure Test();
var LRec: PRecordType;
begin
  New(LRec);
  try
    LRec.Name := 'Name';
    LRec.Bla := 'BlaBla';
    
    MachWas(LRec);
  finally
    LRec.Name := '';
    LRec.Bla := '';
    Dispose(LRec);
  end;
end;

...probiert es aus
Levent Yildirim
Erzeugung von Icons aus Bildern:IconLev
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#25

Re: Speicherbereinigung von Strings

  Alt 17. Jul 2007, 15:36
Zitat von Tyrael Y.:
...probiert es aus
Wozu sollte man die Strings zum Schluss auf '' setzen? Und wozu sollte man das ausprobieren?
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Tyrael Y.

Registriert seit: 28. Jul 2003
Ort: Stuttgart
1.093 Beiträge
 
Delphi 2007 Professional
 
#26

Re: Speicherbereinigung von Strings

  Alt 18. Jul 2007, 08:41
Hm, sry ist wohl doch nicht so wie ich es mir gedacht habe...hab es jetzt selbst nochmal gestestet und in diesem Fall entsteht kein Leak.

Wieso ich auf diese Idee gekommen bin....beim VirtualStringTree erzeugen Strings in einem PNodeData einen Memory Leak, wenn sie nicht im OnFreeNode auf leer gesetzt werden.
Meine Annahme war, weil ich sehr viel mit dem VST arbeite, daß es bei Strings in Records immer so ist. Ein Test zeigte mir das Gegenteil. Es entstehen keine Leaks. Beim VST liegt es wohl daran, daß der Record untypisiert ist.

Gruß T.
Levent Yildirim
Erzeugung von Icons aus Bildern:IconLev
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Speicherbereinigung von Strings

  Alt 18. Jul 2007, 13:47
Zitat von Tyrael Y.:
Beim VST liegt es wohl daran, daß der Record untypisiert ist.
genau so ist es, denn woher sollte sollte VST denn wissen was du in dem Record speicherst?
VST bekommt ja vom Inhalt und dessen Typen nichts mit ... du kastest den Typ ja auch erst außerhalb des VST.

aber das ist überall so, wo der Typ nicht direkt angegeben ist und wo dieses dann nicht explizit bei der Freigabe beachtet wird.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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 23:33 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