Jump to content

Hoard memory allocator

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Oliver.hessling (talk | contribs) at 13:40, 12 June 2009 (removed the two stub templates). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
Hoard
Original author(s)Emery Berger
Developer(s)Emery Berger
Initial releaseError: All values must be integers (help)
Stable release
3.7.1 / May 25, 2007; 17 years ago (2007-05-25)
Repository
Operating systemUnix-like, Microsoft Windows and others
PlatformCross-platform
Available inC++
TypeMemory allocation
LicenseGPL v2 and another one for proprietary software
Websitehttp://www.hoard.org/


The Hoard memory allocator, or Hoard, is a memory allocator for Linux, Solaris, Microsoft Windows and other operating systems. Hoard is designed to be efficient when used by multithreaded applications on multiprocessor computers. Hoard is distributed under the GPL, but can be purchased for proprietary software.

History

In 2000, its author Emery Berger benchmarked some famous memory allocators and stated Hoard improves the performance of multithreaded applications by providing fast, scalable memory management functions (malloc and free). In particular, it reduces contention for the heap (the central data structure used in dynamic memory allocation) caused when multiple threads allocate or free memory, and avoids the false sharing that can be introduced by memory allocators. At the same time, Hoard has strict bounds on fragmentation[1][2].

In 2004, Michael Maged implemented a new memory allocator and benchmarked it with Hoard and some other famous memory allocators. He stated its new memory allocator is more efficient than Hoard[3][4]. Then Michael Maged contributed to improve Hoard's quality[5].

Nowadays, Hoard is still maintained and improved and softwares rely on it[6][7].

References

  1. ^ Berger, E.D. (2000). "Hoard: a scalable memory allocator for multithreaded applications". ACM SIGPLAN Notices. 35 (11): 117–128. doi:10.1145/356989.357000. Retrieved 2008-01-06. {{cite journal}}: Unknown parameter |coauthors= ignored (|author= suggested) (help)
  2. ^ above PDF freely available at http://www.cs.umass.edu/~emery/hoard/asplos2000.pdf
  3. ^ Maged M. Michael (2004). "Scalable Lock-Free Dynamic Memory Allocation". ACM SIGPLAN Notices. 39 (6): 35–46. doi:10.1145/996841.996848. {{cite journal}}: Unknown parameter |coauthors= ignored (|author= suggested) (help)
  4. ^ above PDF freely available at http://www.research.ibm.com/people/m/michael/pldi-2004.pdf
  5. ^ See THANKS file in source code
  6. ^ Toffanin Mauro's blog Commercial Linux distributions may use Hoard instead of GNU libc
  7. ^ GNU Telephony GNU Common C++ uses libhoard