Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Rausfinden, wie viel RAM der Inhalt einer StringList ver... (https://www.delphipraxis.net/35306-rausfinden-wie-viel-ram-der-inhalt-einer-stringlist-ver.html)

Meflin 5. Dez 2004 13:56


Rausfinden, wie viel RAM der Inhalt einer StringList ver...
 
...braucht!

Moin zusammen,
in letzter zeit passiert mir öfter ein EOutOfMemory ( :stupid: ) was aber nicht etwa an ineffektiven programmierstiel liegt, sondern schlicht an der menge der zu bearbeitenden daten ;)
es handelt sich dabei um strings, die in einer TStringList aufbewahrt werden. um nun eben das EOutOfMemory zu verhindern, will ich ab und zu den Inhalt in eine Datei auslagern.
Dazu müsste ich aber irgendwie rausfinden, wie viel RAM der Inhalt der StringList verbraucht, und ich habe keinen blassen schimmer wie :(
Hoffe auf eure Hilfe ;)

*MFG*

mirage228 5. Dez 2004 13:57

Re: Rausfinden, wie viel RAM der Inhalt einer StringList ver
 
Hi,

was willst Du denn machen?
Vielleicht gibt es ja eine bessere Lösung, als eine Stringlist o.Ä.

mfG
mirage228

Meflin 5. Dez 2004 14:03

Re: Rausfinden, wie viel RAM der Inhalt einer StringList ver
 
nunja ich erstelle haufenweise strings. die werden dann an eine unbegrenzte anzahl clients verteilt, die wiederum die strings verarbeiten. problem ist nur dass das teil halt bis zum userabbruch strings produziert, also theoretisch unendlich viele in dieser stringlist landen (sollten die clients nicht hinterherkommen).

mirage228 5. Dez 2004 14:12

Re: Rausfinden, wie viel RAM der Inhalt einer StringList ver
 
Hm, wieviel RAM-Verbrauch hat denn Deine Anwendung, wenn der EOutOfMemory fehler kommt?

mfG
mirage228

Meflin 5. Dez 2004 14:19

Re: Rausfinden, wie viel RAM der Inhalt einer StringList ver
 
weis ich nicht genau.
ich hab 512 MB RAM, d2005 und die anwendung laufen.
es dürften so um die
Zitat:

Zitat von Mein Taschenrechner
8031810176

strings sein...

mirage228 5. Dez 2004 14:23

Re: Rausfinden, wie viel RAM der Inhalt einer StringList ver
 
Naja,

selbst wenn so ein String ziemlich klein wäre, hättest du nicht genug RAM um so viele unterschiedliche Strings speichern zu können...
Da musst du Dir wohl was anderes überlegen...

mfG
mirage228

Meflin 5. Dez 2004 14:24

Re: Rausfinden, wie viel RAM der Inhalt einer StringList ver
 
jupp, deswegen mein ich ja: in einer datei auslagern. bei bedarf kann ich die datei dann laden und weiterverarbeiten.
das war meine ursprüngliche absicht ;)

mirage228 5. Dez 2004 14:27

Re: Rausfinden, wie viel RAM der Inhalt einer StringList ver
 
Zitat:

Zitat von Meflin
jupp, deswegen mein ich ja: in einer datei auslagern. bei bedarf kann ich die datei dann laden und weiterverarbeiten.
das war meine ursprüngliche absicht ;)

Rechne einfach mal mit ca. 8 Bytes (Längenbytes, ReferenceCounter) + Length(String) Bytes pro String.
Und nach x MB lagerst du dann aus und löscht die liste im speicher.

mfG
mirage228

Meflin 5. Dez 2004 14:40

Re: Rausfinden, wie viel RAM der Inhalt einer StringList ver
 
ok, aber dauert das nicht seehr lange? ich meine da muss ich ja jeden einzelnen listeneintrag durchgehen...

mirage228 5. Dez 2004 14:42

Re: Rausfinden, wie viel RAM der Inhalt einer StringList ver
 
Zitat:

Zitat von Meflin
ok, aber dauert das nicht seehr lange? ich meine da muss ich ja jeden einzelnen listeneintrag durchgehen...

Kannst du vielleicht bereits beim Hinzufügen mitzählen - das wäre am einfachsten.

mfG
mirage228

Meflin 5. Dez 2004 14:44

Re: Rausfinden, wie viel RAM der Inhalt einer StringList ver
 
gute idee :thumb: werd mich gleich mal dranmachen :)

sakura 5. Dez 2004 14:45

Re: Rausfinden, wie viel RAM der Inhalt einer StringList ver
 
Meflin, Du solltest Dir definitiv einen anderen Ansatz überlegen. 8 Milliarden Strings zu verwalten, das ist ein Mammutunterfangen :shock: Selbst wenn jeder nur ein Byte groß wäre, es keinen Overhead (aka 8 Byte je String) ergäbe das einen Verbrauch von 8GB... 3GB ist auf Serversystemen das absolute Maximum.

...:cat:...

Meflin 5. Dez 2004 15:16

Re: Rausfinden, wie viel RAM der Inhalt einer StringList ver
 
Zitat:

Zitat von sakura
Meflin, Du solltest Dir definitiv einen anderen Ansatz überlegen. 8 Milliarden Strings zu verwalten, das ist ein Mammutunterfangen :shock: Selbst wenn jeder nur ein Byte groß wäre, es keinen Overhead (aka 8 Byte je String) ergäbe das einen Verbrauch von 8GB... 3GB ist auf Serversystemen das absolute Maximum.

...:cat:...

es waren 80 Milliarden ;) aber ich weis schon wie ichs mache... einfach die erstellung der strings solange einfrieren bis wieder neuer bedarf besteht.

andere frage: bytes in MB sind schon bytes durch (1024 * 1024) oder?

Ultimator 5. Dez 2004 15:23

Re: Rausfinden, wie viel RAM der Inhalt einer StringList ver
 
Jap, 1 MB = 1024 KB = 1024*1024 Byte (nach alten Einheiten;-). Hab mich immer noch nicht an "Kibibyte" gewöhnt :-?)


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:57 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 by Thomas Breitkreuz