![]() |
Delphi-Version: 7
zu wenig arbeitsspeicher?
Hallo,
habe 8 GB RAM und habe einen ultra!! langen String in dem Source, den ich mir in einer Funktion zurückgeben möchte. Ich verstehe nicht, warum ich zu wenig Arbeitsspeicher habe? Ichkann en String auch nicht manuell kopieren? Das kann ja nicht sein? o.O Stringlänge ~5mio. zeichen Funktion sieht ungefähr so aus:
Delphi-Quellcode:
function rueckgabe : String;
begin result := langerstringzweihundertfünfundfünfzigzeichenprozeile + langerstringzweihundertfünfundfünfzigzeichenprozeile + langerstringzweihundertfünfundfünfzigzeichenprozeile; end; |
AW: zu wenig arbeitsspeicher?
Der Compiler ist halt der Meinung, wer so einen langen String nicht aus einer Ressource oder externen Datei lädt, der hat vom falschen Baum geraucht. :cyclops: Und womit?
Meiner Meinung nach mit Recht. Alleine die Vorstellung diese ca. 20000 Zeilen alle entsprechend zu quoten und zu verbinden (von der evtl. Änderung mal ganz abgesehen), lässt es mir kalt den Rücken runterlaufen. Alles zum Thema Ressourcen (auch in Bezug zu diesem Problem) findest du über die SuFu hier im Forum. |
AW: zu wenig arbeitsspeicher?
Zitat:
|
AW: zu wenig arbeitsspeicher?
Und nein, denn dein Programm hat nur 2 GB zur Verfügung.
Du kannst auch nur 1 GB physikalischen RAM besitzen und 2 GB als Pagefile ... der virtuelle Speicher in deinem Programm bleibt dennoch nur bei maximal 2 GB (für 32 Bit-Programme). Und in diesen 2 GB muß auch irgendwo ein Stück freies gefunden werden, welches zusamenhängend genügend Speicher bietet. Die TStringList hat da den Vorteil, daß sie alle "Zeilen" einzeln im RAM verteilt. |
AW: zu wenig arbeitsspeicher?
Ich habe irgendwie das Gefühl, daß Du einen String als Container für etwas ganz anderes mißbrauchst.
Wie wäre es wenn Du eine etwas weniger kryptische Beschreibung erstellen würdest? Oder vielleicht uns einmal ein paar der sehr langen Strings zeigen würdest? Gruß K-H |
AW: zu wenig arbeitsspeicher?
Zitat:
![]() ;) Resource mag ich nicht, wird als virus anerkannt. das hatte ich nämlich vorher :) Abseits vom Thema: Delphi ist sowieso strange, wieso wird ein leeres Delphi-projekt überhaupt als virus erkannt? komisch. |
AW: zu wenig arbeitsspeicher?
Sicher daß die OutOfMemory-Fehlermeldung zu Laufzeit kommt und nicht etwa doch schon ein "zuviele lokale Konstanten" vom Compiler?
Nja, warum meckert da wohl der Virenscanner? (da ist doch hoffentlich nichts "böses" drin?) PS: Du hast doch nicht etwa auch versucht den "String" so "kodiert" in die Resourcen gepackt? Wenn ja, warum steckst du sie denn nicht einfach mal dekodiert dort rein? (das spart sogar Speicher) |
AW: zu wenig arbeitsspeicher?
Ressource oder Text, beides wird als Text in der Exe gespeichert. Da musst du dein Programm einfach als False Positive an den Antivirenhersteller melden.
Zitat:
|
AW: zu wenig arbeitsspeicher?
Zitat:
|
AW: zu wenig arbeitsspeicher?
Zitat:
Nja, zuviele Trojaner wurden mit Delphi erstellt und es gibt zuwenige große Delphiprojekte, weswegen die Heuristiken ein bissl zu allergisch reagieren. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:03 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