Rimio a scris:
Sincer, am scris un memory manager si sa mor daca imi dau seama de ce.
Pai de ce te-ai apucat sa-l scrii?

Si mai ales, pe ce te-ai bazat cind l-ai scris? Ca doar nu te-ai apucat sa faci unul fara sa ai un scop, de exemplu sa faci alocarile mici si fixe sa fie eficiente.
Un alocator custom se scrie pentru ca:
1. Nu toti programatorii care lucreaza la proiect sint disciplinati.
2. STL-ul nu-i deloc disciplinat daca e folosit de programatori nedisciplinati.
3. E destul de usor sa scrii un alocator mai rapid decit ce vine in CRT-ul multor compilatoare daca observi anumite caracteristici ale codului tau.
4. Codul "disciplinat" este asa pentru ca aloca mult si face singur management la bucata aia - ignorind, evident, cazurile penale cu malloc(sizeof(int)). Daca ai un alocator care stie despre ce e vorba, poti sa faci asta intr-un singur loc, nu sa duplici codul ala care face bucketing si reusing si ce-o mai face in 20 de locuri.
5. Poate vrei profiling, adica sa stii in fiecare moment cita memorie e folosita pentru lightmap-uri, cit e pentru normal map-uri, cit e pentru geometrie, cit e pentru AI, etc. Zic "poate" la misto, ca evident ca vrei daca ai un buget de memorie.
6. Poate iti trebuie vreun feature mai ezoteric, cum ar fi sa fie lock-free. Foarte multe structuri de date lock-free sint nedisciplinate si au nevoie sa aloce memorie per-element (ca STL-ul). Daca alocatorul nu e lock-free (ala din CRT-ul Microsoft, nu e, de exemplu), degeaba ai algoritmi lock-free de cozi si tree-uri, ca nu vor fi de fapt lock-free. In cazul asta vei avea nevoie de un alocator mai eficient (ca-l tot chemi) si lock-free, adica pui mina si scrii.
7. Or mai fi si altele, da' e in functie de proiect.