[zeromq-dev] Questions about Coding Style

john skaller skaller at users.sourceforge.net
Sat Feb 11 21:37:58 CET 2012


On 12/02/2012, at 7:21 AM, niXman wrote:

> The problem with dangling pointers can only be solved using its own
> allocator.

Sort of. You don't need to actually write an allocator.
It is enough to trace all constructed sockets.

This won't stop memory corruption of a legitimately constructed
live socket. Neither will a custom allocator.

However I take the view that malloc is already pretty good.
I don't know if it actually is, but it is managed by people that
care a lot about efficiency and probably already provide
checks (on my Mac I actually get "free pointer not allocated"
indicating some checks are being done already).

If you want a fast allocator, you have to use TLS to avoid locks.
You're allocating excess storage. If your application is using a lot
of libraries all with their own allocators .. you're actually *causing*
fragmentation and wasting memory.

A library cannot replace "malloc", only a framework should do that.
libgc does it, but then it's really a framework.

But I'm guessing .. always worth looking at a design proposal.


--
john skaller
skaller at users.sourceforge.net







More information about the zeromq-dev mailing list