HOME

TheInfoList



OR:

The Hoard memory allocator, or Hoard, is a
memory allocator Memory management is a form of resource management applied to computer memory. The essential requirement of memory management is to provide ways to dynamically allocate portions of memory to programs at their request, and free it for reuse when ...
for
Linux Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which ...
,
OS X macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and lapt ...
, and
Microsoft Windows Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for serv ...
. Hoard is designed to be efficient when used by multithreaded applications on
multiprocessor Multiprocessing is the use of two or more central processing units (CPUs) within a single computer system. The term also refers to the ability of a system to support more than one processor or the ability to allocate tasks between them. There ar ...
computers. Hoard is distributed under the Apache License, version 2.0.


History

In 2000, its author
Emery Berger Emery may refer to: Places United States * Emery, Arizona, a populated place * Emery, Illinois * Emery, Michigan * Emery, Ohio, a ghost town * Emery Park, a park in Erie County, New York * Emery, North Carolina * Emery, Fayette County, Pe ...
benchmarked some famous memory allocators and stated Hoard improves the performance of multithreaded applications by providing fast,
scalable Scalability is the property of a system to handle a growing amount of work by adding resources to the system. In an economic context, a scalable business model implies that a company can increase sales given increased resources. For example, a ...
memory management functions (
malloc C dynamic memory allocation refers to performing manual memory management for dynamic memory allocation in the C programming language via a group of functions in the C standard library, namely , , , and . The C++ programming language includes ...
and
free Free may refer to: Concept * Freedom, having the ability to do something, without having to obey anyone/anything * Freethought, a position that beliefs should be formed only on the basis of logic, reason, and empiricism * Emancipate, to procur ...
). 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 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. When a system participant attempts ...
that can be introduced by memory allocators. At the same time, Hoard has strict bounds on
fragmentation Fragmentation or fragmented may refer to: Computers * Fragmentation (computing), a phenomenon of computer storage * File system fragmentation, the tendency of a file system to lay out the contents of files non-continuously * Fragmented distributi ...
. Hoard continues to be maintained and improved, and is in use by a number of open source and commercial projects. It has also inspired changes to other memory allocators such as the one in
OS X macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and lapt ...
since February 2008 (first released in Mac OS X Snow Leopard).


See also

* C dynamic memory allocation *
Manual memory management In computer science, manual memory management refers to the usage of manual instructions by the programmer to identify and deallocate unused objects, or garbage. Up until the mid-1990s, the majority of programming languages used in industry supp ...
* Dynamic memory allocation *
mimalloc mimalloc (pronounced "me-malloc") is a free and open-source compact general-purpose memory allocator developed by Microsoft with focus on performance characteristics. The library is about 11000 lines of code and works as a drop-in replacement f ...


References


External links


The Hoard web page

Emery Berger
Hoard's author and a professor at the
University of Massachusetts Amherst The University of Massachusetts Amherst (UMass Amherst, UMass) is a public research university in Amherst, Massachusetts and the sole public land-grant university in Commonwealth of Massachusetts. Founded in 1863 as an agricultural college, it ...
. {{DEFAULTSORT:Hoard Memory Allocator Memory management Memory management software