Ich schreibe den jährlichen Gasverbrauch einmal pro Jahr in eine Variable und logge die mit.
Das ergibt lt. Archive handler eine Größe von 303 Byte und 13 Einträgen.
Wenn ich mir aber das dazugehörige csv anschaue, wird das jede Stunde geschrieben, meistens mit sehr vielen Nachkommastellen und auch unterschiedlichen Werten, obwohl nix dazukommt…die Variable wird ja nur einmal pro Jahr aktualisiert.
Das lässt die Größe natürlich extrem ansteigen (über 4 MB für eine Variable).
Nachdem ich aber jede Menge von diesen großen csv Dateien habe und diese auch ins Memory geladen werden, ist das wohl die Ursache von meinem Speicherproblem.
Fürs Logging werden leider nicht die Profildaten, sondern die internen Rohdaten geloggt. Das hatte ich schonmal vor ca. 10 Jahren angemerkt. Workaround: zweite Variable per Script auf fixe Nachkommastellen setzen und diese loggen.
Jede Variable enthält immer alle Aggregationsstufen. Die kleinste ist dabei „Stunde“ und wird somit auch jede Stunde geschrieben, damit du ggf. Abfragen darauf sehr schnell machen kannst. Die Aggregation sollte jedoch sofern du nicht gerade 1000 dieser Variablen hast, kein Problem darstellen.
Das Problem ist jedoch, dass ich doch viele solcher Variablen habe und diese anscheinend den großen Memoryverbrauch verursachen.
Es macht m.E. keinen Sinn, den unveränderten Zahlenwert der Floatvariable jede Stunde neu zu aggregieren und dadurch csv Dateien mit 80000 Einträgen und paar MB Größe zu generieren.
Wie kann ich nun das Problem lösen?
Mir ist grad aufgefallen, dass ich das auch bei integer Variablen habe, dass sich die in der 13. Nachkommastelle ändern, obwohl sie gleich geblieben sind.
zb. beim Loggen der Betriebsstunden, der über lange Zeit einen unveränderten Wert von 901 hat.
Bei mir ergibt sich daraus ein csv mit 48000 Einträgen und 2 MB Größe.
Das Problem kannst du in dem Sinne aktuell gar nicht lösen. Wir wollen zur 5.5 einige Veränderungen im Archiv vornehmen - insbesondere weniger der Aggregationen in den RAM laden. Auf der Festplatte werden die paar MB jedoch weiterhin beleiben, da den Fall eher Sonderfall ist. Normalerweise werden in Variablen ja fortlaufend Daten gesammelt.
Du müsstest dich also aktuell bis zur 5.5 gedulden