( asch | 2018. 10. 01., h – 21:19 )

A kedvecem az esemény-lavina. Pont most fogtam egyet. A vicc az, hogy a mai gépek annyira erősek, hogy sokszor észre sem vesszük - fejlesztőként - az ilyet. Főleg, ha mondjuk egy i7-en fejlesztünk kis adatbázisokkal, és aztán élesben egy Atomon futtatják nagy adatbázissal. Persze ha komoly dologról van szó, és mérünk meg minden, akkor nehéz benézni, de ha csak valamit gyorsan összeütünk, akkor előfordulhat.

A lényege az, hogy a mai GUI objektumoknál bevett gyakorlat, hogy listenereket aggatunk az értékekre: például ha megváltozik egy css bejegyzés, akkor újra kell rajzolni az általa érintett egyéb objektumokat. Ha a kiválasztott elem változik - pl egy listában a leveleink - akkor a hozzá tartozó információt - előnézetet - befrissítjük.

Na most ha nem vigyázunk, akkor lehet olyanokat csinálni, hogy egy változás miatt újrarajzolunk egy egész fát, de az újrarajzolás minden lépésére újrarajzolunk egy kisebb fát, aminek minden ágára újrarajzolunk egy ikont. (Persze vektorosan nagyfelbontásban, amit aztán leskálázunk kicsire, mert úgy a leghatékonyabb).

Ilyen módon simán lehet a modell elemszámával szorozni a futásidőt akár kétszer háromszor is. (n négyzet, n köb futásidő megvan egy pillanat alatt) Az ilyen gyakorlat alá lehetetlen elegendő vasat tolni. Ezzel még Moore is alig tudott versenyezni, és most hogy vége van, muszáj újra megtanulni programozni :-).