AW: Memory leak durch funktion readln
Aber wenn ihr schon Calls zählt, beiden Varianten ist gemeinsam: Die Datenzeile muss erst wieder "manuell" extrahiert werden, und darum ist (meiner Meinung nach) ReadLn(TxtVariable,MeinDatenString) die schnellste Lösung, weil hier die Länge der Stringvariable gleich mit gesetzt wird.
|
AW: Memory leak durch funktion readln
Zitat:
daaaaanke fpr eure schnellen ausführlichen antworten! super forum! daaaanke. ich schreib nochmal morgen, hab jetzt n paar meetings. viele grüße |
AW: Memory leak durch funktion readln
Zitat:
Kommt darauf an, ob und was ich mit dem String machen will... |
AW: Memory leak durch funktion readln
Zitat:
|
AW: Memory leak durch funktion readln
Naja, wenn ich es richtig sehe, bekommt "autodatei" kein Close.
Das mag Windows überhaupt nicht, weil dadurch File-Handles nicht wieder freigegeben werden. Das kann in der Folge dann auch zu Memory-Leaks führen. Mal abgesehen davon, dass in der inneren While-Schleife ein Exit steht. Wodurch keine einzige Datei-Variable mehr freigegeben wird. Oder habe ich das Close für autodatei übersehen? |
AW: Memory leak durch funktion readln
Richtig, das sind zwei weitere Probleme. Aber, der TE hat doch mit FastMM geprüft. Müsste der dann nicht anschlagen?
|
AW: Memory leak durch funktion readln
Weiß ich nicht sicher, da ich mich mit FastMM nicht besonders gut auskenne.
Allerdings ist das mit den File-Handles in dieser Konstellation meines Wissens ein Windows-Problem. Das könnte evtl. an FastMM vorbei gehen. EDIT: Zitat:
|
AW: Memory leak durch funktion readln
Zitat:
Das letzte mal, als ich so wilde Dateioperationen durchgeführt habe, war noch kein Delphi existent. [OT] @Mavarik glaub ich Dir gerne, aber da die Blockwrite/Blockread-s definitv langsamer waren als das Filestream.Read/write, hab ich alles umgestellt (seit D7/XP) u.U. gibt es da ja noch ein paar Nebensächlichkeiten, die sich auswirken!?) [/OT] Gruß K-H |
AW: Memory leak durch funktion readln
Eine wesentliche Verbesserung des gezeigten Quelltextes würde - wohl auch im Hinblick auf das Thema dieses Threads - in der Verwendung von Ressourcenschutzblöcken bestehen...
|
AW: Memory leak durch funktion readln
Zitat:
Lesen von 5.291.584 KB - gelesen in Häppchen zu 1.048.576 KB Versuch 0 : ohne Wertung wegen Windows Cache lesen. Versuch 1 : Blockread(1405 ms) StreamRead(1408 ms) 1:0 Versuch 2 : Blockread(1414 ms) StreamRead(1404 ms) 1:1 Versuch 3 : Blockread(1411 ms) StreamRead(1408 ms) 1:2 Versuch 4 : Blockread(1416 ms) StreamRead(1407 ms) 1:3 Versuch 5 : Blockread(1406 ms) StreamRead(1409 ms) 2:3 Versuch 6 : Blockread(1421 ms) StreamRead(1423 ms) 3:3 Versuch 7 : Blockread(1423 ms) StreamRead(1417 ms) 3:4 Versuch 8 : Blockread(1407 ms) StreamRead(1411 ms) 4:4 Versuch 9 : Blockread(1408 ms) StreamRead(1410 ms) 5:4 Ätsch Blockread hat mit 5:4 gewonnen... Gemessen in einer Windows 7/64 VMWare |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:07 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