Jump to content

Hoard memory allocator

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by 98.247.38.143 (talk) at 01:50, 9 August 2015 (Updated for newest release). 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
Kathryn S. McKinley
Robert D. Blumofe
Paul R. Willson
Developer(s)Emery Berger
Initial releaseSeptember 29, 1999 (1999-09-29)
Stable release
3.11 / August 5, 2015; 9 years ago (2015-08-05)
Repository
Operating systemLinux, OS X, Microsoft Windows, Solaris and others
PlatformCross-platform
Available inC++
TypeMemory allocation
LicenseGPL v2 and another one for proprietary software
Websitewww.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]

Hoard continues to be maintained and improved, and is in use by a number of open source and commercial projects.[2][3]

It has also inspired changes to other memory allocators such as the one in OS X since February 2008 (first released in Mac OS X Snow Leopard).[4][5]

References

  1. ^ Attention: This template ({{cite doi}}) is deprecated. To cite the publication identified by doi:10.1145/378993.379232, please use {{cite journal}} (if it was published in a bona fide academic journal, otherwise {{cite report}} with |doi=10.1145/378993.379232 instead.
  2. ^ "An alternative Memory Allocator for the standard glibc". 2007-09-16. Archived from the original on 2011-10-07.
  3. ^ "GNU Common C++ Downloading".
  4. ^ "I'm a Mac (or, "Emery Inside")".
  5. ^ "A look at how malloc works on the Mac".