Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Prüftool 1.1.0 Speicherverbrauch? #644

Open
ztp-mino opened this issue Dec 22, 2017 · 4 comments
Open

Prüftool 1.1.0 Speicherverbrauch? #644

ztp-mino opened this issue Dec 22, 2017 · 4 comments

Comments

@ztp-mino
Copy link

Wenn ich die Version 1.1.0 benutze um ein 10.000.000 Belege DEP zu prüfen, bricht es bei der "Machine readable code validation" nach etwa 200.000 Belegen mit java.lang.OutOfMemoryError: GC overhead limit exceeded ab. Ich hab folgenden Aufruf verwendet:

java -Xms32G -Xmx32G -jar regkassen-verification-1.1.0/regkassen-verification-depformat-1.1.0.jar -c dep_big/crypto_big.json -i dep_big/dep_big.json -o out

Nun soll der Speicherverbrauch ja nicht ganz konstant sein, aber ich kann mir nicht vorstellen, dass das Ding bei 32G Heapsize nicht die IDs von 200.000 Belegen zwischenspeichern kann...

Nun kann man den GC Error abdrehen, aber das löst das Problem nicht. Es gelingt dem Garbage Collector nicht ausreichend Speicher frei zu machen, was IMO auf ein Memory Leak hindeutet.

Die Prüfung wird den Ausgaben nach zu urteilen auch immer langsamer. Erst werden mehrere 10.000 Belege in einem durch geprüft, gegen Ende werden grade mal 100 geprüft bevor das Ding für eine Weile scheinbar steht.

@asitplus-pteufl
Copy link
Contributor

Vielen Dank für den Hinweis. Wurde mit V1.1.1 behoben (soeben freigegeben).

@ztp-mino
Copy link
Author

ztp-mino commented Jan 4, 2018

Ich teste gerade das 10 Mio. DEP mit der neuen Version und den gleichen Parametern. Soweit keine Hänger und keine GC Errors, wird ein paar Stunden dauern, melde mich nochmal wenns durch ist.

Allerdings streikt das Tool mit weniger Speicher (probiert mit 8GB und 12GB) und fängt nichtmal an die Belege zu prüfen. Kann es sein, dass das DEP zu Beginn als ganzes gelesen wird und in Objekte geparst wird? Und dann nur die Prüfergebnisse nach und nach generiert, geschrieben und verworfen werden? Das DEP ist auf der Platte etwa 3GB groß, d.h. 8-12GB für Unicode Strings und diversen Objekt-Overhead klingt erstmal plausibel...

@ztp-mino
Copy link
Author

ztp-mino commented Jan 5, 2018

Ist durchgelaufen, hat etwa 9 Stunden gedauert. Vielen Dank!

@Alex1130
Copy link

Alex1130 commented Jan 11, 2018

Betreffend der Ausgabe von Prüfergebnissen: wäre es möglich ein zusätzliches verbosity flag (oder verbosity levels) für die nächste Version anzudenken?
zB eine minimale oder keine Ausgabe wenn das Ergebnis PASS ist und Ausgabe inklusive Details für FAIL Ergebnisse?
Ein output von >110GB für 60.000 Belege ist doch recht umfangreich (alles PASS)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants