Hoard memory allocator: Difference between revisions

Content deleted Content added
Removed weasel comment.
See also: annlink
 
(38 intermediate revisions by 30 users not shown)
Line 1:
{{short description|Memory allocator}}
The '''Hoard memory allocator''', or '''Hoard''', is a [[memory allocation|memory allocator]] for [[Linux]], [[Solaris (operating system)|Solaris]], [[Microsoft Windows]] and other [[operating systems]]. Hoard can improve 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 journal
{{Infobox software
| author = Berger, E.D.
|name = Hoard
| coauthors = McKinley, K.S.; Blumofe, R.D.; Wilson, P.R.
|author = Emery Berger, [[Kathryn S. McKinley]], Robert D. Blumofe, Paul R. Wilson
| year = 2000
|developer = Emery Berger
| title = Hoard: a scalable memory allocator for multithreaded applications
|released = {{Start date|1999|09|29}}
| journal = ACM SIGPLAN Notices
|latest release version = 3.13
| volume = 35
|latest release date = {{Start date and age|2019|1|1}}
| issue = 11
|operating system = [[Linux]], [[OS X]], [[Microsoft Windows]]
| pages = 117-128
|language = [[C++]]
| url = http://portal.acm.org/citation.cfm?id=356989.357000
|genre = [[Memory allocation]]
| accessdate = 2008-01-06
|license = [[Apache License]] v2
}}</ref>.
|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==
* {{cite journal
| id=Berger2000
| author = Berger, E.D.
| coauthors = McKinley, K.S.; Blumofe, R.D.; Wilson, P.R.
| year = 2000
| title = Hoard: a scalable memory allocator for multithreaded applications
| journal = ACM SIGPLAN Notices
| volume = 35
| issue = 11
| pages = 117–128
| url = http://portal.acm.org/citation.cfm?id=356989.357000
| accessdate = 2008-01-06
| doi = 10.1145/356989.357000
}}
* [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]]
 
 
{{Windows-software-stub}}
{{Linux-stub}}