Hoard memory allocator
Encyclopedia
The Hoard memory allocator, or Hoard, is a memory allocator for Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

, Solaris, Microsoft Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

 and other operating systems. Hoard is designed to be efficient when used by multithreaded applications on multiprocessor
Multiprocessor
Computer system having two or more processing units each sharing main memory and peripherals, in order to simultaneously process programs.Sometimes the term Multiprocessor is confused with the term Multiprocessing....

 computers. Hoard is distributed under the GPL, but can be purchased for proprietary software
Proprietary software
Proprietary software is computer software licensed under exclusive legal right of the copyright holder. The licensee is given the right to use the software under certain conditions, while restricted from other uses, such as modification, further distribution, or reverse engineering.Complementary...

.

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
Memory management
Memory management is the act of managing computer memory. The essential requirement of memory management is to provide ways to dynamically allocate portions of memory to programs at their request, and freeing it for reuse when no longer needed. This is critical to the computer system.Several...

 functions (malloc
Malloc
C dynamic memory allocation refers to performing dynamic memory allocation in the C via a group of functions in the C standard library, namely malloc, realloc, calloc and free....

 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
False sharing
In computer science, false sharing is a performance degrading usage pattern that can arise in systems with distributed, coherent caches at the size of the smallest resource block managed by the caching mechanism...

 that can be introduced by memory allocators. At the same time, Hoard has strict bounds on fragmentation
Fragmentation (computer)
In computer storage, fragmentation is a phenomenon in which storage space is used inefficiently, reducing storage capacity and in most cases reducing the performance. The term is also used to denote the wasted space itself....

.

In 2004, Maged Michael 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. Then Maged Michael contributed to improve Hoard's quality.

Nowadays, Hoard is still maintained and improved and software relies on it.

External links

  • The Hoard web page.
  • Emery Berger, Hoard's author and a professor at the University of Massachusetts Amherst
    University of Massachusetts Amherst
    The University of Massachusetts Amherst is a public research and land-grant university in Amherst, Massachusetts, United States and the flagship of the University of Massachusetts system...

    .
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK