Unify is a library and run-time package that provides a distributed shared memory abstraction for multiple processes. Unify lets programmers to write distributed applications that cross machine boundaries. Unify programs share memory in chunks called segments. Programs call "get" to update get the latest copy of a segment or "put" to send a copy of the segment to interested processes. Event counts and synchronizers are used for synchronization.
Hoard is a fast, scalable and memory-efficient allocator for
multithreaded applications on multiprocessors. Hoard solves the heap
contention problem caused when multiple threads simultaneously call
FIFO handling of memory cache can result in the unexpected effect of performance actually declining when the amount of memory increases. Windows NT reportedly (but unverifiably) suffers from this problem.
pmap analyzes memory usage of processes on Linux
This may be used to determine what's going on with X memory usage thus: pmap `pidof X`
The result, on my system, was that X was mapping a total of 231MB, but of that, 169MB was being shared with other things (e.g. - shared libraries, the RAM on the graphics card, and so forth) such that the actual consumption associated with X itself was around 55MB, which is not particularly outrageous.
Managing memory "by hand" tends to be tedious and error-prone.
Memory management tends to be strongly tied to language environments, which vary in the degree to which they permit automation of this process.
The FluxOS Toolkit tries to provide OS components to allow the OS environment to expose rich interfaces for memory management to the language implementation, which apparently makes it easier to experiment with exotic memory management techniques.
There are, nonetheless, some tools and libraries designed to provide common garbage collection tools for programmsers working in various languages including C.
Describes a GC implemented in ML .
qish - generational copying garbage collector for C/C++