ich stelle hier eine Möglichkeit vor Scripte beim Laden von Ballast zu befreien.
- Die Vorteile:
1. geringerer Speicherbedarf des Scriptes im RAM
2. es wird nur das verkleinerte Skript geladen
3. schnelleres laden der @-Parameter
4. die "letzte Leerzeile" ist für uBasic-Scripte nicht mehr erforderlich
5. Scripte können ausreichend kommentiert werden
6. wahrscheinlich schneller Programmausführung in uBasic bzw. schnellerer Programmstart bei Lua
- Die Nachteile:
1. Auf Grund der fehlenden CHDK-Funktion zur Verkleinerung eines benötigten Speicherbereichs (realloc), muss das Script die Routine zum Verkleinern 2 mal durchlaufen (1. Bestimmen des erforderlichen Speicherplatzes; 2. verkleinertes Script laden -> daher Vorteil 2).
TEST: Den max. Zeitbedarf kann man mit der Datei "/SCRIPTS/TEST/libtst.lua" gut testen. Diese ist sehr groß und gut kommentiert.
2. LUA-Kommentarblöcke müssen definitionsgerecht geschrieben sein (z.B. "--]]" sieht schön aus, entspricht aber nicht dem Syntax!)
CHDK-Dateien mit Syntaxfehler "--]]"
SCRIPTS/Kurven/ISOBoost.lua
SCRIPTS/TEST/setmode.lua
SCRIPTS/TEST/setrec.lua
SCRIPTS/TEST/tstcallf.lua
- Das Verfahren:
- entfernen der Leerzeichen am Zeilenanfang und -ende
- entfernen von Leerzeilen
- entfernen von REM oder "--" Zeilen
- optimieren des 1. LUA-Kommentarblocks - es verbleiben die Kommentarblockzeichen ("--[[", "]]") und alle @-Zeilen
- entfernen aller weiteren LUA-Kommentarblöcke
- entfernen von LUA-Kommentaren am Zeilenende, wenn dort kein " oder ' im Kommentar enthalten ist
- entfernen aller "carriage return"
- jede Zeile wird mit "newline" abgeschlossen (wichtig für uBasic - letzte Zeile)
- Das Ergebnis:
Eine durchschnittliche Speicherersparnis 10% bis 20%.
Beispiel: Die Datei "/SCRIPTS/TEST/libtst.lua". Dabei werden aus 11.360Byte dann 9.440Byte - eine Einsparung von 17%.
Die Patches:
Ich habe wegen des "--]]"-Problems drei Versionen vorbereitet.
1. Die technisch korrekte Version: einfach und schnell, aber intolerant bei falschem Syntax (Fehler lädt "default script").
2. Die Version von 1. mit "--]]"-Toleranz ("scriptstrip_Ex").
3. Die Version für Sicherheitsfanatiker. Basiert ebenfalls auf Version von 1., verwendet aber im Fehlerfall die bisherige Laderoutine und kennzeichnet das im Programmtitel mit einem "!" als erstes Zeichen ("scriptstrip_fallback").
Zur Kontrolle des verkleinerten Scripts ist eine Debug-Mode integriert.
- Vor dem Auswählen des Scriptes im Script-Menü folgendes einstellen:
- Parameter-Satz-Nr: 9
- Parameterspeicher: aus.
Das verkleinerte Script wird unter "/LOGS/STRIP.TXT" gespeichert und kann z.B. mit dem Textbetrachter geöffnet werden.
Nach Prüfung der Syntaxregeln für Kommentarende ist auch "--]]" zulässig.
Es steht nur noch der Patch nach der 1. Version zur Verfügung.
(siehe Beitrag vom 28.06.2010, 18:44)
[/EDIT]
Gruß rudi