Q:

How does memcached's memory allocation work? Why not use malloc/free!? Why the hell does it use slabs!?

Like
Answer
Comment
Flag
Thanks for your feedback!
A:

1 Answer

rank
1
Like
Comment
Flag
Actually, it's a compile time option. The default is to use the internal slab allocator. You really really want to use the built-in slab allocator. At first memcached did just use malloc/free for everything. However this does not play very well with OS memory managers. You get fragmentation, and your OS ends up spending more time trying to find contiguous blocks of memory to feed malloc() than it does running the memcached process. If you disagree, of course you're free to try malloc! just don't complain on the lists ;) The slab allocator was built to work around this. buy viagra online --> Memory is allocated in chunks internally and constantly reused. Since memory is broken into different size slabs, you do waste memory if your items do not fit perfectly into the slab the server chooses to put it in. This has enjoyed considerable efficiency improvements by Steven Grimm.  more
socialtext.net

Related Videos

Add your answer...

Top Answerers

1.
Cheap SSL Certificates
7 Answers in the past week
2.
vanity fair
7 Answers in the past week
3.
Robert Turner
4 Answers in the past week

Top Askers

1.
Frank Bell
2 Questions in the past week
2.
Frank Bigaglow
3 Questions in the past week
3.
Charles McAtee
2 Questions in the past week

Top Supporters

1.
Tom Wagner
9 Likes given in the past week
2.
Susan Brunner
3 Likes given in the past week
3.
CableAnd OtherThings Too
2 Likes given in the past week
...