Registriert seit: 11. Jun 2011
313 Beiträge
|
AW: Schnelleres laden von PNGs
8. Mär 2012, 19:01
Verwende einen Cache, genauer gesagt, einen MRU-Cache. "Most Recently Used". Klingt toll, ist banal:
Du baust Dir eine Liste (verkettet z.B.) mit maximal N Elementen, oder sovielen Elementen, das maximal X Bytes Speicher verbraucht werden.
Die ist zunächst leer.
bevor Du eine PNG in eine Bitmap konvertieren willst, schaust Du im Cache nach, ob die da drin ist. Wenn ja, kommt sie an den ANFANG der Liste. Wenn nicht, wird sie erzeugt und auch an den ANFANG gepackt. Dadurch wächst die Liste. Wenn sie zu groß ist (mehr als N Elemente oder mehr als X Bytes Speicher) wird der LETZTE Eintrag der Liste verworfen.
3-2-1- Perfekt, skalierbar, schnell.
Das tolle ist ja, das die tendentiell oft benötigten Objekte vorne sind, und die selten benötigten eben tendentiell hinten. Also wird ein Cache-Miss relativ selten sein.
|