[X] Speicherüberlauf beim Taggen vieler Dateien


#1

Hallo !

Ich habe ein seltsames Verhalten von Mp3tag entdeckt. Und zwar kommt es nach dem Taggen extrem vieler Musikdateien häufig zu einem Speicherüberlauf, der irreversibel bleibt. Will heißen: Selbst nach dem Tagging-Vorgang (der vermutlich mehr Speicher in Anspruch nimmt) wird der belegte Speicher nicht wieder freigegeben.

Zur Belegung meiner Behauptung anbei zwei Screenshots:

a) Mp3tag im "jungfräulichen Zustand" gleich nach einladen der zu taggenden Musikfiles:



Speicherbelegung lt. Taskmanager: 66.100 kByte

b ) Mp3tag nach dem Tagging-Vorgang:



Speicherbelegung lt. Taskmanager: 186.768 kByte.

... wobei es vermutlich noch mehr wäre, wenn nicht der gesamte Speicher auf 384 MB beschränkt wäre. Die gesamte Speicherauslastung liegt dann permanent über 98 %. Ein Arbeiten mit dem Computer ist kaum mehr möglich, weil danach alle Aktionen nur noch im Zeitlupentempo ablaufen. Es bleibt dann nur noch die Lösung, Mp3tag zu beenden, und anschließend neu zu starten. Und selbst wenn man das Programm schließt, bleibt laut Taskmanager der "Geist" davon im Speicher zurück (mp3tag.exe weiterhin im Taskmanager mit gleich hoher Speicherbelegung sichtbar). Erst ein gewaltsames Beenden des Programms über den Taskmanager bringt dann Abhilfe und gibt den Speicher letztendlich wieder frei.




#2

Ich werde mir das mal ansehen, weiß aber im Moment nichts von irgendwelchen Memory Leaks.

Kann es sein, dass während dem Taggen ein Fehler o.Ä. aufgetreten ist?

Viele Grüße,
~ Florian


#3

Nein, "leider" nicht. Der Tagging-Vorgang an sich läuft immer ohne irgendwelche Probleme durch. Also, dieser Fehler taucht nicht schon immer auf. Allerdings kann ich jetzt auch nicht genau sagen, seit welcher Version (oder seit welchem Development-Build) das so ist. Aufgefallen ist er mit jedenfalls schon vor ein paar Wochen.
Ich werde die nächsten Tage einmal ein paar Tests mit der 2.27 Final machen, und berichten ob es da auch noch so ist. Leider verfüge ich nicht mehr über die älteren Versionen von Mp3tag. - Kannst du mir einen Link zu den noch älteren geben, damit ich die mir ggf. neu herunterladen und ebenfalls testen kann? - Wenn feststünde, ab welcher Version dieser Fehler auftritt, hättest du wenigstens einen konkreten Anhaltspunkt, wo sich der Bug verstecken könnte.


#4

Hallo R.A.F.!

Ich hab den gesamten Code der für das Einlesen und Speichern zuständig ist jetzt die letzten zwei Tage nochmal einem ausgiebigen Review unterzogen und konnte keine Memory Leaks entdecken. Auch bestimmte Programmiertools zum Auffinden von Programmierfehlern, wie der Compuware BoundsChecker konnten nichts entdecken.

Das von Mp3tag.exe beim Beenden ein "Zombie" im Taskmanager zurück geblieben ist, liegt wohl eher an der Auslastung Deines Systems zu dem Zeitpunkt.

Allerdings ist mir schon auch aufgefallen, dass mit extrem vielen Dateien der Speicher einfach eng wird. Ich musste zum Testen mein Archiv 5x kopieren :slight_smile: Ich werd mal sehen, ob ich da noch ein wenig optimieren kann.

Viele Grüße,
~ Florian


#5

Ja, okay. So dramatisch ist das mit dem Speichermehrverbrauch vielleicht dann doch nicht. Und zwar hab´ ich mal die 2.27 Final installiert. Und der Speichermehrverbrauch war anfangs der gleiche wie beim aktuellen Development-Build. Als ich dann aber nach 10 oder 15 Minuten Untätigkeit nochmal im Taskmanager nachsah, hatte sich die Speicherbelegung wieder einigermaßen normalisiert auf 120 MB (von 180 MB kurz nach dem Taggen und ursprünglich ca. 70 MB). Vielleicht macht Windows XP nur ab und an so ein "Memory-Cleanup", sodaß es immer etwas dauert bis sich alles wieder einrenkt.


#6

Hi,

ich wollte die Geschichte noch einmal mit einen neuen Gedanken aufwärmen. Ich habe nahezu das selbe Problem:

Wenn ich einige Dateien (~500) mit einem Cover (á ~100kb) versehe, dann ist eine ziemlich große Menge (virtueller) Arbeitsspeicher nötig (habe z.Z. 2.5 GB festgelegt damit es funktioniert). Mein Rechner wird dann auch nahezu lahmgelegt. Lege ich nur 1GB fest, dann beendet Windows den Prozess mit der Info, dass nicht genug virtueller Arbeitsspeicher vorhanden ist. Ich weiß zwar nicht wie Mp3Tag Arbeitsspeicher reserviert und wieder freigibt, aber IMHO ist dieser Punkt verbesserungswürdig.

Kann es eventuell daran liegen, dass die Undo-Funktion sich diese Aktionen abspeichert und daher so viel Speicher benötigt? Ein optionales Deaktivieren wäre dann eventuell nett.

mfg - Björn


#7

Hallo Björn,

Ich habe in dieser inoffiziellen Version (Beta) jetzt das Cover aus den Undo-Informationen entfernt und einige weitere Optimierungen dazu vorgenommen. Vielleicht könntest Du es ja mal testen und mir Feedback dazu geben.

Viele Grüße,
~ Florian