AGB  ·  Datenschutz  ·  Impressum  







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

Memory leak durch funktion readln

Ein Thema von danieldelphi · begonnen am 12. Mär 2015 · letzter Beitrag vom 13. Mär 2015
Antwort Antwort
Seite 6 von 7   « Erste     456 7      
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#51

AW: Memory leak durch funktion readln

  Alt 13. Mär 2015, 10:18
Also das exit und die autodatei sind nicht das problem, da in dem code den ich zuanfang gepostet habe beides nicht vorhanden ist aber das problem trotzdem auftritt.
ich hab mir mal Dein erstes Posting geschnappt und mal laufen lassen:
Delphi-Quellcode:
procedure sterb_schleife;
var
  quell_dat, grossdatei: text;
  quelldatname : string;
  zeile : string;
  zaehler_gesamt : integer;
begin
  assign(grossdatei, 'c:\temp\'+ 'big.txt');
  rewrite(grossdatei);
  quelldatname := 'test.TXT';
  assign(quell_dat, 'c:\temp\' + quelldatname);
  reset(quell_dat);
  while not eof(quell_dat){zaehler_gesamt<1200000} do
  begin
    readln(quell_dat, zeile);
    Writeln(grossdatei, zeile);
    inc(zaehler_gesamt);
    (*
      if ((zaehler_gesamt mod 1000) = 0) then
          dsnr.strings[1] := inttostr(zaehler_gesamt);
      *)

  end;
  flush(quell_dat);
  close(quell_dat);
  flush(grossdatei);
  close(grossdatei);

end;
Abgesehen von der nicht umwerfenden Geschwindigkeit, gibt es da keine Probleme! Wenn Du Probleme hast, dann ist die Frage wie kommst Du überhaupt darauf?

Ich misch mich grade nochmal in eure Diskussion ein, also ich ahbe mittlerweile rausgefunden, dass der Arbeitsspeicher scheinbar nicht von meinem Delphi tool blockiert wird, sondern von etwas anderem, also kann es ja nur die Datei verwaltung oder windows sein ioder?
dagegen kann man nix machenn oder?
Was heißt "Arbeitsspeicher wird blockiert"?


Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector

Geändert von p80286 (13. Mär 2015 um 10:21 Uhr)
  Mit Zitat antworten Zitat
danieldelphi

Registriert seit: 12. Mär 2015
38 Beiträge
 
#52

AW: Memory leak durch funktion readln

  Alt 13. Mär 2015, 10:26
Also das exit und die autodatei sind nicht das problem, da in dem code den ich zuanfang gepostet habe beides nicht vorhanden ist aber das problem trotzdem auftritt.
ich hab mir mal Dein erstes Posting geschnappt und mal laufen lassen:
Delphi-Quellcode:
procedure sterb_schleife;
var
  quell_dat, grossdatei: text;
  quelldatname : string;
  zeile : string;
  zaehler_gesamt : integer;
begin
  assign(grossdatei, 'c:\temp\'+ 'big.txt');
  rewrite(grossdatei);
  quelldatname := 'test.TXT';
  assign(quell_dat, 'c:\temp\' + quelldatname);
  reset(quell_dat);
  while not eof(quell_dat){zaehler_gesamt<1200000} do
  begin
    readln(quell_dat, zeile);
    Writeln(grossdatei, zeile);
    inc(zaehler_gesamt);
    (*
      if ((zaehler_gesamt mod 1000) = 0) then
          dsnr.strings[1] := inttostr(zaehler_gesamt);
      *)

  end;
  flush(quell_dat);
  close(quell_dat);
  flush(grossdatei);
  close(grossdatei);

end;
Abgesehen von der nicht umwerfenden Geschwindigkeit, gibt es da keine Probleme! Wenn Du Probleme hast, dann ist die Frage wie kommst Du überhaupt darauf?

Ich misch mich grade nochmal in eure Diskussion ein, also ich ahbe mittlerweile rausgefunden, dass der Arbeitsspeicher scheinbar nicht von meinem Delphi tool blockiert wird, sondern von etwas anderem, also kann es ja nur die Datei verwaltung oder windows sein ioder?
dagegen kann man nix machenn oder?
Was heißt "Arbeitsspeicher wird blockiert"?


Gruß
K-H
danke dass du nochmal rein geschaut hast, also wenn ich das tool laufen lasse, die input datei ist 300 mb groß,
dann "läuft der arbeitsspeicher voll, also das sehe ich daran, dass der grüne balken im ressourcen monitor unter memory der für in use steht immer weiter anwächst.
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.130 Beiträge
 
Delphi 10.3 Rio
 
#53

AW: Memory leak durch funktion readln

  Alt 13. Mär 2015, 11:04
dann "läuft der arbeitsspeicher voll, also das sehe ich daran, dass der grüne balken im ressourcen monitor unter memory der für in use steht immer weiter anwächst.
?? Ist das nicht "nur" Windows Memory use? Oder ist das Application bezogen?

Ist der Speicher wieder frei nach dem Close und ein bisschen Wartezeit?

Mavarik
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#54

AW: Memory leak durch funktion readln

  Alt 13. Mär 2015, 11:26
Du kannst seine Sterb_schleife 10 mal hintereinander ausführen und der Speicherbedarf ist nach der Ausführung nicht gestiegen. Insofern ist die Bezeichnung "Leak" irreführend.

Es geht nur um den immer weiter steigenden Speicherbedarf innerhalb der Schleife.
  Mit Zitat antworten Zitat
danieldelphi

Registriert seit: 12. Mär 2015
38 Beiträge
 
#55

AW: Memory leak durch funktion readln

  Alt 13. Mär 2015, 11:27
dann "läuft der arbeitsspeicher voll, also das sehe ich daran, dass der grüne balken im ressourcen monitor unter memory der für in use steht immer weiter anwächst.
?? Ist das nicht "nur" Windows Memory use? Oder ist das Application bezogen?

Ist der Speicher wieder frei nach dem Close und ein bisschen Wartezeit?

Mavarik
Ja der Speicher ist dann wieder frei. aber application bezogen kann ich leide rnicht sagen:/
  Mit Zitat antworten Zitat
danieldelphi

Registriert seit: 12. Mär 2015
38 Beiträge
 
#56

AW: Memory leak durch funktion readln

  Alt 13. Mär 2015, 11:28
Du kannst seine Sterb_schleife 10 mal hintereinander ausführen und der Speicherbedarf ist nach der Ausführung nicht gestiegen. Insofern ist die Bezeichnung "Leak" irreführend.

Es geht nur um den immer weiter steigenden Speicherbedarf innerhalb der Schleife.
Ja okay, also heißt, dass das mein tool okay ist aber iwas anderes nicht stimmt?
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.130 Beiträge
 
Delphi 10.3 Rio
 
#57

AW: Memory leak durch funktion readln

  Alt 13. Mär 2015, 11:34
Ja okay, also heißt, dass das mein tool okay ist aber iwas anderes nicht stimmt?
Ich würde eher sagen: Lass Windows seinen Speicher so verwalten wie Windows das will...

Oder sagt Reportmemoryleaksonshutdown etwas anderes?
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#58

AW: Memory leak durch funktion readln

  Alt 13. Mär 2015, 11:40
Ich glaube eher dass es, egal ob ReadLn, TStreamReader oder sonst was, es nicht am Code, sondern an den Daten liegt. Ich habe bei meiner "steigt immer weiter an"-Aussage vergessen zu erwähnen dass ich das mit einer Testdatei mit einer 300MB langen Zeile versucht habe. Wenn man ein paar Millionen kleine Zeilen untereinander macht ist die sterb_schleife auch vollkommen ok und steigt kein KB im Speicherbedarf.

Oder hast du ein paar Zeilen um eine Testdatei zu erzeugen wie sie bei dir normalerweise aussehen?
  Mit Zitat antworten Zitat
danieldelphi

Registriert seit: 12. Mär 2015
38 Beiträge
 
#59

AW: Memory leak durch funktion readln

  Alt 13. Mär 2015, 11:47
Ich glaube eher dass es, egal ob ReadLn, TStreamReader oder sonst was, es nicht am Code, sondern an den Daten liegt. Ich habe bei meiner "steigt immer weiter an"-Aussage vergessen zu erwähnen dass ich das mit einer Testdatei mit einer 300MB langen Zeile versucht habe. Wenn man ein paar Millionen kleine Zeilen untereinander macht ist die sterb_schleife auch vollkommen ok und steigt kein KB im Speicherbedarf.

Oder hast du ein paar Zeilen um eine Testdatei zu erzeugen wie sie bei dir normalerweise aussehen?
Also ich habe zwischen 2 und 4 millionen zeilen mit ca 350 zeichen.
aber gute idee das mal zu testzwecken mit anderer zeilen länge zu versuchen

Geändert von danieldelphi (13. Mär 2015 um 11:49 Uhr)
  Mit Zitat antworten Zitat
danieldelphi

Registriert seit: 12. Mär 2015
38 Beiträge
 
#60

AW: Memory leak durch funktion readln

  Alt 13. Mär 2015, 11:48
Ja okay, also heißt, dass das mein tool okay ist aber iwas anderes nicht stimmt?
Ich würde eher sagen: Lass Windows seinen Speicher so verwalten wie Windows das will...

Oder sagt Reportmemoryleaksonshutdown etwas anderes?
nee das sagt, dass alles okay ist.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 6 von 7   « Erste     456 7      


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 10:12 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