Pooling Flashcards
(5 cards)
Kaj je pooling in kje ga uporabljamo?
- Namesto ponovnega ustvarjanja in brisanja objektov se ti vzamejo iz vnaprej pripravljenega “bazena” (pool).
- Uporablja se pri delcih, metkih ali sovražnikih za zmanjšanje fragmentacije pomnilnika
- Z uporabo vzorcev, kot je Pooling, zmanjšamo ustvarjanje in brisanje objektov.
- S pravilnim sproščanjem pomnilnika, npr. v Javi se uporablja dispose() za objekte kot so teksture
Prednosti:
- v vecini primerov pohitri ustvarjanje objektov
- z uporabo funkcije dispose(), ne rabimo skrbet za memory leak
- enostaven za implementacijo
Slabosti:
- ni nujno da je delovanje hitrejse kot klasicne metode
- optimiziranje tega je otezeno
Kaj je fragmentacija?
Tezava, ki jo povzroci neucinkovito dodeljevanje in sproscanje pomnilnika (bloki)
Memory leak, sproscanje pomnilnika, defregmentacija
- Memory Leak: Pojav, ko objekti ostanejo v pomnilniku brez uporabe.
- Sproščanje: Uporabimo dispose() za sprostitev virov.
- Defragmentacija: Pooling zmanjša fragmentacijo s ponovno uporabo objektov.
Debugging
- Debug mrežo (DebugViewportUtils.drawGrid).
- Logging za izpis pozicij delcev.
Procesiranja vhoda - pooling, event subscriber, event system
- Polling: Neposredno preverjanje stanja tipk: Gdx.input.isKeyPressed(Input.Keys.A).
- Event Subscriber: Uporaba sistema dogodkov, kjer poslušamo specifične dogodke.
- Event System: Abstrakcija za obdelavo dogodkov (npr. klik ali dotik).