Odpověď na názor

Odpovídáte na názor ke článku The Tale of Two (.NET) Heaps.

  • 9. 11. 2011 16:11

    ondra.novacisko.cz (neregistrovaný)

    @7 Napsat alokator je sice veda, ale napsat specializovany alokator je jednoduche. Ve svem repertoaru mam alokatory ruzne, treb ClusterAlokator, ktery se hodi pro alokaci bloku stejne velikosti a mnohonasobne zrychluje praci s mapou. ted pracuji na shortAlloc, ktery je urcen pro kratkodobe alokace ruzne velkych objektu, napriklad stringu a jenz ma v idealnim pripade rychlost 1 akorat sem tam musi provest defragmentaci der se slozitosti n*log n. Nejrychlejsi je, pokud se alokuje extra pamet pro objekty na zasobniku, kdy dealokace probiha v opacnem poradi. Dal tam mam cacheAlloc, kde se dealokovana pamet uklada do cache aby byla rychle k dispozici, static allokator, ktery vytvari heap v zasobniku, smallalloc pro alokaci poli malych velikosti, kdy vetsi pole pak fallbackujou na std new a delete. Zalezi na pouziti,

    Vsechny alokartory mam striktne instanciovatelne, coz umoznuje pouzivat je v MT prostredi bez nutnosti je zamykat ,pokud zamek resi ten objekt, ktery jej pouziva (treba vlastni mapa). Mit alokator pro kazdy vlakno separatne no problem. Ale tohle vsechno mi funguje bez STL. Prizpusobovat to STL znamena pokouset se letat s pristrizenymi kridly