开发者

Efficient C pool allocator?

开发者 https://www.devze.com 2023-01-26 13:43 出处:网络
I\'m currently attempting to write a 2D scene graph in C, and I need to decide on a way of storing the child nodes. I\'m expecting very many reads and few writes, so a linked list is out of the questi

I'm currently attempting to write a 2D scene graph in C, and I need to decide on a way of storing the child nodes. I'm expecting very many reads and few writes, so a linked list is out of the question due to poor spatial locality of reference, and using realloc every time to add a child node would probably fragment the free list into oblivion. A pool allocator seems to be the best solution, but I can't seem to find any implementations to use. Does anyone know of an allocator that would efficiently handle开发者_Go百科 random-ish allocations and deallocations of a few hundred small structs, or perhaps a better allocation scheme?


I'm preparing to deploy TLSF as a real-time allocator. I haven't had a chance to profile its performance yet, but it seems to work, and the license is right.

According to their docs, its operations execute "a maximum of 168 processor instructions in a x86 architecture". It comes as a single .c file, which compiled without modifications on my system.


Take a look at halloc, it might be of some help.

http://swapped.cc/halloc/

0

精彩评论

暂无评论...
验证码 换一张
取 消