Document ID: /fineweb-2-swissfilter-quality_10-filterrobots/filtered/03279.jsonl.gz/1230

Die Software hat seit dem letzten Post zahlreiche Verbesserungen erfahren. Besondere Aufmerksamkeit musste dem RAM Speicherbedarf gewidmet werden. Das Array für das Senden der Daten wird intern berechnet und hat bei einer Samplingrate von 36'000 nicht (immer) genügend Speicher zur Verfügung. Eine Analyse der Kurvenform mit reduzierter Rate auf 18'000 Punkte / Sekunde zeigte keine Schwierigkeiten beim Dekodieren. Für noch mehr freies RAM sorgt die Komprimierung der .py Dateien in .mpy mit dem MPY-CROSS Tool.
Weitere Bytes im RAM lassen sich gewinnen, wenn klasseninterne Variablen nicht über getter/setter Funktionen angesprochen werden. Python kennt keine lokal geschützen klasseninternen Variablen. Wenn man deren Namen kennt, kann man darauf zugreifen. Einzig die Namenskonvention deutet auf die gedachte Verwendung hin. Variablen die als __var1 deklariert sind, werden von Python aber etwas versteckt. Variablennamen wie _var2 sind frei zugänglich, sollen aber dem Programmierer auf die private Eigenschaft derer hinweisen. Daher sind im aktuellen Quellcode alle öffentlichen Variablen einer Klasse direkt ohne getter/setter abrufbar. Das gilt natürlich nur für solche Variablen, die keine Berechnungen oder zusätzliche Bearbeitung benötigen.