AGB  ·  Datenschutz  ·  Impressum  







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

SetLength -> Zu wenig Arbeitsspeicher?

Ein Thema von AJ_Oldendorf · begonnen am 11. Aug 2010 · letzter Beitrag vom 18. Aug 2010
 
AJ_Oldendorf

Registriert seit: 12. Jun 2009
473 Beiträge
 
Delphi 12 Athens
 
#26

AW: SetLength -> Zu wenig Arbeitsspeicher?

  Alt 12. Aug 2010, 10:27
@Neutral General: Das mein PAnsiString nicht initialisiert ist oder auf Müll zeigt, würde ich jetzt erstmal für mich ausschließen da das besagte Problem nur sporadisch auftritt und nicht so einfach zu greifen ist.

Ich denke schon die ganze Zeit nach, ob es nicht wirklich "einfach" nur an der Fragementierung liegt.
Habe jetzt mal folgendes getestet:

Delphi-Quellcode:
var
  i: Integer;
  a: AnsiString;
begin
  try
    i := 1;
    while True do
    begin
      SetLength(a, i);
      i := i * 2;
    end;
  except
    //DoAnything...
  end;
end.
Hier ist laut TaskManager ganz eindeutig zu sehen, dass der Speicher anwächst.

Jetzt eine kleine Änderung und man sieht im TaskManager den Speicher nicht mehr ansteigen...

Delphi-Quellcode:
var
  i: Integer;
  a: AnsiString;
begin
  try
    i := 1;
    while True do
    begin
      SetLength(a, 0); //<---- NEU
      SetLength(a, i);
      i := i * 2;
    end;
  except
    //DoAnything...
  end;
end.
Habe mir grade mal ein Programm geschrieben, was mir permanent über MessageQueue Nachrichten an einen Thread schickt mit der Übergabe eines PAnsiString und anschließender Freigabe. Ich teste das ganze jetzt mal nur mit dem SetLength (also ohne vorher das "SetLength(xxx,0)" und gucke mir das mal im TaskManager an.
Ein Timer schickt alle 1,5 sek ein Telegramm an den Thread und dieser macht mit dem Telegramm erstmal gar nichts. Ist für mich nur zum testen...

Habt ihr noch Ideen / Anreize / Vorschläge?

Viele Grüße
Alex
  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 03:13 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