RAM verbrauchsproblem Postgresql+ZEOS

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: RAM verbrauchsproblem Postgresql+ZEOS

Beitrag von wp_xyz »

Welche Datei nimmst du denn, bei der der Speicherbedarf in die GB hoch geht?

Dragon
Beiträge: 162
Registriert: Mi 31. Jul 2013, 15:07
OS, Lazarus, FPC: Ubuntu 16.04, CodeTyphon 5.80

Re: RAM verbrauchsproblem Postgresql+ZEOS

Beitrag von Dragon »

ok ja jetzt wird der speicher wieder freigegeben.

wp_xyz: auch eine normale textdatei ca 25MB die kann ich aber icht verlinken^^ weil privat.

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: RAM verbrauchsproblem Postgresql+ZEOS

Beitrag von wp_xyz »

Nachdem ich das Commit aus der Schleife genommen habe und nur noch nach der Schleife ausführe wird die Tabelle in 0.4 s geschrieben (gegenüber 8 s vorher). Mein Code entspricht dem von af0815 geposteten, halt bis auf das entferne Commit.

Leider weiß ich momentan nicht so recht, wie ich unter Windows den Speicherverlauf messen soll...
Zuletzt geändert von wp_xyz am Sa 29. Okt 2016, 23:42, insgesamt 1-mal geändert.

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: RAM verbrauchsproblem Postgresql+ZEOS

Beitrag von wp_xyz »

Dragon hat geschrieben:wp_xyz: auch eine normale textdatei ca 25MB die kann ich aber icht verlinken^^ weil privat.

Wo soll ich jetzt eine 25 MB Text-Datei herkriegen?

Dragon
Beiträge: 162
Registriert: Mi 31. Jul 2013, 15:07
OS, Lazarus, FPC: Ubuntu 16.04, CodeTyphon 5.80

Re: RAM verbrauchsproblem Postgresql+ZEOS

Beitrag von Dragon »

wp_xyz du könntest heaptrace manuell aufrufen und in ein log schreiben

Edit:
http://www.gutenberg.org/cache/epub/3200/pg3200.txt
die sollte ca 25MB haben
Zuletzt geändert von Dragon am Sa 29. Okt 2016, 21:37, insgesamt 1-mal geändert.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: RAM verbrauchsproblem Postgresql+ZEOS

Beitrag von af0815 »

Hier die Datei, die Testdaten findet man ein paar Seiten vorher beschrieben (Am ende eines Artikel).
Edit:
Das ist übrigens mein Testfile
http://www.gutenberg.org/cache/epub/910/pg910.txt


Edit: bei dem 3200.txt File gibt die StringReplace scheinbar auf, die dauert ewig - nach ca. 7 Minuten abgebrochen (und das ist kein schwachbrüstiger Rechner).
Dateianhänge
SQLiteTextTest.zip
Testprojekt
(4.16 KiB) 82-mal heruntergeladen
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Dragon
Beiträge: 162
Registriert: Mi 31. Jul 2013, 15:07
OS, Lazarus, FPC: Ubuntu 16.04, CodeTyphon 5.80

Re: RAM verbrauchsproblem Postgresql+ZEOS

Beitrag von Dragon »

übr die testfiledateien sind nicht meine die hab ich nur mal zufällig gefunden

mein rechner ist auch schwach ^^ . deshalb ist mir speed und ram verbrauch auch so wichtig, und aus neugier wo die fehler liegen natürlich.

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: RAM verbrauchsproblem Postgresql+ZEOS

Beitrag von wp_xyz »

Die Datei werde ich gleich probieren. Ich habe mir inzwischen eine 30 MB Datei mit 2 Millionen zufälligen Strings geschrieben. Diese wird in 78 sec eingelesen, Speicherzuwachs sehe ich im Taskmanager kaum, commit nur am Ende, Mit Commit alle 200.000 Wörter dauerts 180 sec, der Speicherverlauf erscheint mir etwas flacher (aber eh kaum zu erkennen).

[EDIT]
Die 3200er Datei ist nach 11 sek fertig, Speicherzuwachs marginal. Das StringReplace des gesamten Strings (auch bei mir ein Hänger) habe ich rausgenommen und in die Schleife verlagert, wo es auf die einzelnen Wörter angewendet wird, das sollte doch auch richtig sein, oder?

Anbei auch ein Screenshot des Taskmanagers. Die Phase, während der die 3200er Datei gelesen wurde, ist gekennzeichnet
Dateianhänge
Mem.png

Dragon
Beiträge: 162
Registriert: Mi 31. Jul 2013, 15:07
OS, Lazarus, FPC: Ubuntu 16.04, CodeTyphon 5.80

Re: RAM verbrauchsproblem Postgresql+ZEOS

Beitrag von Dragon »

ja ist auch richtig ich habe das replace nur um die befehlszeichen von sqlite rauszufiltern

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: RAM verbrauchsproblem Postgresql+ZEOS

Beitrag von wp_xyz »

Welche Befehlszeichen? Es werden doch nur die Wörter aus dem Text in die SQL-Anweisung eingesetzt, sqlite hat diese noch gar nicht gesehen.
Zuletzt geändert von wp_xyz am Sa 29. Okt 2016, 22:10, insgesamt 1-mal geändert.

Dragon
Beiträge: 162
Registriert: Mi 31. Jul 2013, 15:07
OS, Lazarus, FPC: Ubuntu 16.04, CodeTyphon 5.80

Re: RAM verbrauchsproblem Postgresql+ZEOS

Beitrag von Dragon »

ja aber ' mag er nicht im text jedenfalls vorher was bei englischen texten ja durchaus mal öfters kommt^^ . Da das durch die antiinjektion sachen die ihr im code geändert habt wrsl nicht mehr notwendig ist kann ich das entfernen.

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: RAM verbrauchsproblem Postgresql+ZEOS

Beitrag von wp_xyz »

Nachdem wir jetzt mit Parametern arbeiten, ist das egal - das wird beim Ersetzen des Parameters automatisch richtig gemacht.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: RAM verbrauchsproblem Postgresql+ZEOS

Beitrag von af0815 »

Wenn man es noch schneller, aber unsicher haben will,

Code: Alles auswählen

SQLite3Connection1.ExecuteDirect('PRAGMA synchronous = OFF;')


Bei sqlite kann man nachlesen was man damit alles deaktiviert :-)
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Dragon
Beiträge: 162
Registriert: Mi 31. Jul 2013, 15:07
OS, Lazarus, FPC: Ubuntu 16.04, CodeTyphon 5.80

Re: RAM verbrauchsproblem Postgresql+ZEOS

Beitrag von Dragon »

danke für eure ganze zeit läuft jetzt alles :)

marcov
Beiträge: 1100
Registriert: Di 5. Aug 2008, 09:37
OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
CPU-Target: 32/64,PPC(+64), ARM
Wohnort: Eindhoven (Niederlande)

Re: RAM verbrauchsproblem Postgresql+ZEOS

Beitrag von marcov »

Regelmäßig Transaction committen.

Antworten