Sonntag, 24. Januar 2010

jsync und der Arbeitsspeicher

Ich habe in den letzten Zeiten etwas recht positives festgestellt.

Trotz der Arbeit mit Dateien im Gigabyte Bereich läuft jsync immer mit der gleichen Anzahl an MB im RAM.
Aktuell verbrauch jsync bei einer Synchronisation mit 10 Threads und somit auch mit 10 Synchronisationen gleichzeitig, mit 100-120 MB RAM.

Dies wird manche natürlich doch etwas erschrecken.
Den so manches native C oder C++ Programm bräuchte für so etwas um die 20-30 MB.
Dies liegt an der Architektur von jsync.

Aktuell verwaltet jsync jede Ebene der Verzechnisse über interne Liste.
Diese enhalten dann die Dateipfade in einem Verzeichnis.
Dies wird mit absoluten Pfaden geregelt.

Dies ist bei vielen Dateien nicht gerade wenig Speicher.
Damit der Speicher aber nicht unnötig belegt bleibt, werden die abgearbeiteten Einträge aus der internen Liste entfernt, was wieder viel Speicher frei gibt.

Ich suche aber immer noch einen Weg, damit ich unter die 100 MB Ram bei jsync komme.
Die Möglichkeit mit einer Datei war mal ein guter Anfang aber erwies sich leider als Sackgasse.

Falls jemand eine gute Idee hat, ich höre immer gerne zu :)

Keine Kommentare: