Ciao.
Girando per internet e un po studiando in queste feste sono caduto su una cosa interessante:
i memory allocator:
http://en.wikipedia.org/wiki/Dynamic_memory_allocation.
Da quello che ho capito allocano un grande spazio il piu possibile contiguo e vasto per poi suddividerlo rapidamente e spedirlo a chi chiede della memoria
ho letto i vantaggi e gli svantaggi , e vorrei utilizzarli nel piccolo engine che sto costruendo in dx per lo scene manager(un grafo che descrive gli oggetti presenti nella scena per intenderci).
Ho la senzazione pero' che possa essere effettivamente complicato creare anche un semplice memory allocator , ma ce ne sono di open source.
soprattutto mi sono sembrate fatte al mio caso le freelist:
http://en.wikipedia.org/wiki/Free_list
che allocano zone tutte della stessa memoria e hanno un puntatore alla successiva zona.
La mia idea sarebbe quella di creare un albero binario bilanciato per partizionare velocemente le zone di memoria che sono di una determinata grandezza (le grandezze saranno 10/15 nel mio caso, perchè i modelli sono di quel numero , ma posso averne moltissimi).
In questo albero infatti un nodo tiene n kb e ripartiziono se la zona di memoria è piu piccola di n creo un nodo a sx o è piu grande di n creo un nuovo nodo a dx, se ho pochi pacchetti di memoria tipici ma diversi traa di loro potrei trovare un numero grossolano che sia il piu' vicino possibile ad un multiplo di tutti gli oggetti.
voi ne avete mai usati?
ciao.