Live data from Hacker News

The Hoard Memory Allocator

hoard.org

1–10 of 21 posts

Re: The Hoard Memory Allocator

#3
We've looked into Hoard. It's fast only if you have a large number of threads that are -constantly- allocating memory, and even then it wastes more memory than a regular heap. The large majority of real-world applications don't do this, but some server applications might. I think Hoard could be useful for that. On the other hand, if performance was critical to you then you'd change your code to not allocate memory so much.

A practical problem we have with Hoard is that it lacks diagnostics. By diagnostics I mean extensive heap reports, fragmentation information, free space, what's the largest block I can safely allocate, give me a callback for every malloc so I can do stats tracking, etc.

Re: The Hoard Memory Allocator

#4
post #2

I see the license is both GPLv2 and proprietary for commercial use. I was unaware that licensing could be done that way. Is that a valid use of GPL?

If all copyright holders agree, then yes (see mysql).

The main issue with that is that you have some problems with accepting external contributions - you need a copyright assignment process, which is difficult to do internationally and a hurdle for contributors to overcome.

Re: The Hoard Memory Allocator

#5
post #2

I see the license is both GPLv2 and proprietary for commercial use. I was unaware that licensing could be done that way. Is that a valid use of GPL?

Sure. If you wrote it, you can license it any way you like. The Qt framework is probably the most famous example of dual licensed (GPL and commercial) software. http://qt.nokia.com/products/licensing

Re: The Hoard Memory Allocator

#6
post #2

I see the license is both GPLv2 and proprietary for commercial use. I was unaware that licensing could be done that way. Is that a valid use of GPL?

It's a valid use of GPL in dual licensing context. Other examples of dual licensing are: VirtualBox, MongoDB, BerkeleyDB.

All patch contributors who initially chose GPL side of dual licensing model should sign copyright disclaimer for their patches, otherwise their code won't be accepted into the main repository. Alternatively, patchmaker may execute his/her GPL rights and fork the project (e.g. Percona).

Re: The Hoard Memory Allocator

#9
post #2

I see the license is both GPLv2 and proprietary for commercial use. I was unaware that licensing could be done that way. Is that a valid use of GPL?

A license is just that, a license to use the code. The copyright holder of a piece of code (or really any other copyrighted data) may license it to whomever they want, however they want. The GPL is just a blanket license giving permission to everyone provided they follow the restrictions put forth by the GPL.

If you are the sole copyright holder (because you are the only person who worked on a project, or because all others assigned their rights to you) then you are allowed to provide any additional licenses besides the GPL. A lot of open source projects (see Qt, MySQL and a bunch of others) work this way, only accepting patches from the community if the patches come with a copyright assignment. This allows them to charge for closed source use of the library while at the same time allowing the open source community to benefit.

Re: The Hoard Memory Allocator

#10
post #8

Unfortunately their performance comparison does not include modern memory allocators like tcmalloc or jemalloc.

It appears to have made a splash around 2000-2003 or so, which is when most of the publications and testimonials/comparisons are from. Looks like it's been mostly in maintenance mode since then, with relatively minor performance and compatibility releases around once per year, which may be why they haven't done a re-assessment against more recent competitors.
Post reply on HN