Content deleted Content added
Removed weasel comment. |
→See also: annlink |
||
(38 intermediate revisions by 30 users not shown) | |||
Line 1:
{{short description|Memory allocator}}
{{Infobox software
|name = Hoard
|author = Emery Berger, [[Kathryn S. McKinley]], Robert D. Blumofe, Paul R. Wilson
|developer = Emery Berger
|released = {{Start date|1999|09|29}}
|latest release version = 3.13
|latest release date = {{Start date and age|2019|1|1}}
|operating system = [[Linux]], [[OS X]], [[Microsoft Windows]]
|language = [[C++]]
|genre = [[Memory allocation]]
|license = [[Apache License]] v2
|website = {{URL|hoard.org}}
}}▼
The '''Hoard memory allocator''', or '''Hoard''', is a [[memory allocation|memory allocator]] for [[Linux]], [[OS X]], and [[Microsoft Windows]]. Hoard is designed to be efficient when used by [[Multithreading (computer architecture)|multithreaded]] applications on [[multiprocessor]] computers. Hoard is distributed under the [[Apache License]], version 2.0.
==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 (programming)|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 (computer)|fragmentation]].<ref name=Berger2000>{{Cite conference | doi = 10.1145/378993.379232| title = Hoard: A Scalable Memory Allocator for Multithreaded Applications| work = Proceedings of the ninth international conference on Architectural support for programming languages and operating systems| conference = [[International Conference on Architectural Support for Programming Languages and Operating Systems|ASPLOS]]-IX| pages = 117–128| date=November 2000 | last1 = Berger | first1 = E. D. | last2 = McKinley | first2 = K. S. |author2-link = Kathryn S. McKinley| last3 = Blumofe | first3 = R. D. | last4 = Wilson | first4 = P. R. | isbn = 1-58113-317-0| url = http://www.cs.umass.edu/~emery/pubs/berger-asplos2000.pdf| citeseerx = 10.1.1.1.4174}}</ref>
Hoard continues to be maintained and improved, and is in use by a number of open source and commercial projects.<ref>{{cite web |title=An alternative Memory Allocator for the standard glibc |date=2007-09-16 |url=http://ineluttabile.it/node/6 |archiveurl=https://web.archive.org/web/20111007180846/http://ineluttabile.it/node/6 |archivedate=2011-10-07}}</ref><ref>{{cite web |title=GNU Common C++ Downloading |url=http://www.gnutelephony.org/index.php?title=GNU_Common_C%2B%2B&oldid=1105#Downloading}}</ref>
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]]).<ref>{{cite web |title=I'm a Mac (or, "Emery Inside") |date=26 October 2010|url=http://emeryblogger.com/2010/10/26/im-a-mac-or-emery-inside/}}</ref><ref>{{cite web |title=A look at how malloc works on the Mac |url=http://www.cocoawithlove.com/2010/05/look-at-how-malloc-works-on-mac.html}}</ref>
==See also==
{{Portal|Free and open-source software}}
*{{annotated link|C dynamic memory allocation}}
*{{annotated link|Manual memory management}}
*{{annotated link|Dynamic memory allocation}}
*{{annotated link|mimalloc}}
==References==
Line 16 ⟶ 33:
==External links==
▲}}
* [http://www.hoard.org/ The Hoard web page].
* [http://www.cs.umass.edu/~emery Emery Berger], Hoard's author and a professor at the [[University of Massachusetts Amherst]].
{{Memory management}}
{{DEFAULTSORT:Hoard Memory Allocator}}
[[Category:Memory management]]
[[Category:Memory management software]]
|