Hoard memory allocator: Difference between revisions

Content deleted Content added
Citation bot (talk | contribs)
m Citation maintenance. Formatted: pages. You can use this bot yourself! Please report any bugs.
Rewritten article + added infobulles & references + removed weasel comments
Line 1:
{{Infobox Software
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
|name = Hoard
|logo =
|screenshot =
|caption =
|collapsible =
|author = Emery Berger
|developer = Emery Berger <!-- ; Martin Bachtold ; Trey Boudreau ; John Calcote ; Robert Fleischman ; Bo Granlund ; John Hickin ; Paul Larson ; Maged Michael ; Kevin Mills ; Ganesan Rajagopal ; Benoit Rignault -->
|released = {{Start date|199x (???)}} <!-- {{Start date|1998|08|01}} -->
|discontinued =
|latest release version = 3.7.1
|latest release date = {{Start date and age|2007|05|25}}
|latest preview version =
|latest preview date = <!-- {{Start date and age|YYYY|MM|DD}} -->
|frequently updated = no
|programming language =
|operating system = [[Unix-like]], [[Microsoft Windows]] and others
|platform = [[Cross-platform]]
|size =
|language = [[C++]]
|status = Active
|genre = [[Memory allocation]]
|license = [[GNU General Public License|GPL]] v2 and another one for [[proprietary software]]
|website = http://www.hoard.org/
}}
 
 
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 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==
 
TheIn '''Hoard memory allocator'''2000, orits '''Hoard''', is aauthor [[memory allocation|memoryEmery allocatorBerger]] forbenchmarked [[Linux]],some [[Solarisfamous (operatingmemory system)|Solaris]], [[Microsoft Windows]]allocators and other [[operating systems]].stated Hoard can improveimproves 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
| author = Berger, E.D.
| coauthors = McKinley, K.S.; Blumofe, R.D.; Wilson, P.R.
Line 10 ⟶ 41:
| url = http://portal.acm.org/citation.cfm?id=356989.357000
| accessdate = 2008-01-06
| doi = 10.1145/356989.357000
}}</ref>.
}}</ref><ref>above PDF freely available at http://www.cs.umass.edu/~emery/hoard/asplos2000.pdf</ref>.
 
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<ref name=Maged2003>{{cite journal
| author = Berger,Maged E.DM. Michael
| coauthors = Thomas, J. Waston
| year = 20002004
| title = Scalable Lock-Free Dynamic Memory Allocation
| journal = ACM SIGPLAN Notices
| volume = 3539
| issue = 116
| pages = 117–12835-46
| url = http://portal.acm.org/citation.cfm?id=356989996841.357000 996848
| accessdate = 2008-01-06
| doi = 10.1145/996841.996848
}}</ref><ref>above PDF freely available at http://www.research.ibm.com/people/m/michael/pldi-2004.pdf</ref>. Then Michael Maged contributed to improve Hoard's quality<ref>See THANKS file in source code</ref>.
 
Nowadays, Hoard is still maintained and improved and softwares rely on it<ref>[http://ineluttabile.it/node/6 Toffanin Mauro's blog] Commercial [[Linux distribution]]s may use '''Hoard''' instead of [[GNU libc]]</ref><ref>[http://www.gnutelephony.org/index.php/GNU_Common_C%2B%2B#Downloading_and_Documentation GNU Telephony] GNU Common C++ uses lib'''hoard'''</ref>.
 
==References==
Line 16 ⟶ 64:
 
==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]].