( XMI | 2013. 12. 16., h – 14:33 )

A korlátlan undo csak egy lehetséges példa volt arra, hogy nem tudsz helyben adatot módosítani, hanem visszamenőleges állapotok tömkelegét kell memóriában tárolni.

Vagy minden command-ot reverzibilisre csinálsz meg (szívás implementálni, sok esetben nem is lehet) akkor elég az aktuális állapot.

Vagy, ha nem megy, akkor sajnos minden műveletnél copy van, amivel durván nő a memóriahasználat.

Vagy megcsinálhatod úgy is, hogy valójában nem tárolod az aktuális állapotot, hanem mindig egy kezdőállapotból kiindulva előrefele lejátszod az összes commandot. Ez meg lassú lesz, cserébe akár a user számára hasznos feature-t lehet belőle fejleszteni (rajzolóprogramnál példa: adjustment layer).

Persze lehet ezeknek mindenféle trükkös kombinációjával optimalizálgatni, akkor meg a fejlesztési munkabefektetés lesz magas.

Lássuk a te példádat:

Egy 640 x 480 x 8bit képet a DeluxePaint kezelt DOS alatt < 640 kB memóriában. A kép mérete 300 kB, vagyis kb a memóriaméret fele.

Egy 5k x 3k x 32bit kép mérete ~59MB. Próbáld meg Gimppel, Photoshoppal, akármivel megnyitni egy 128MB-os gépen. Vagy akár 256MB-ossal, hogy a bonyolultabb oprendszernek is legyen helye alatta.
---
Régóta vágyok én, az androidok mezonkincsére már!