diff options
author | Sverker Eriksson <[email protected]> | 2013-06-19 18:34:56 +0200 |
---|---|---|
committer | Sverker Eriksson <[email protected]> | 2013-06-19 18:51:06 +0200 |
commit | 5d67cc7f4c176ea6ab4d2538443d5fe264152861 (patch) | |
tree | 02629c584461df3b6f80d09a1de6298af4c3440c /erts/doc | |
parent | f91c381afa2ebed6e37b49b4cc3f81bb9ca9e3eb (diff) | |
download | otp-5d67cc7f4c176ea6ab4d2538443d5fe264152861.tar.gz otp-5d67cc7f4c176ea6ab4d2538443d5fe264152861.tar.bz2 otp-5d67cc7f4c176ea6ab4d2538443d5fe264152861.zip |
erts: Add new allocator strategy aoffcbf
with better performance than aoffcaobf as we don't have to rearrange
the search tree when there are blocks of equal size.
Diffstat (limited to 'erts/doc')
-rw-r--r-- | erts/doc/src/erts_alloc.xml | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/erts/doc/src/erts_alloc.xml b/erts/doc/src/erts_alloc.xml index 2ffb55c6ab..5e008493b9 100644 --- a/erts/doc/src/erts_alloc.xml +++ b/erts/doc/src/erts_alloc.xml @@ -170,6 +170,15 @@ used. The time complexity is proportional to log N, where N is the number of free blocks.</p> </item> + <tag>Address order first fit carrier best fit</tag> + <item> + <p>Strategy: Find the <em>carrier</em> with the lowest address that + can satisfy the requested block size, then find a block within + that carrier using the "best fit" strategy.</p> + <p>Implementation: Balanced binary search trees are + used. The time complexity is proportional to log N, where + N is the number of free blocks.</p> + </item> <tag>Address order first fit carrier address order best fit</tag> <item> <p>Strategy: Find the <em>carrier</em> with the lowest address that @@ -330,7 +339,7 @@ fetched it will function as an ordinary carrier. This feature has special requirements on the <seealso marker="#M_as">allocation strategy</seealso> used. Currently - only the <c>aoff</c> and the <c>aoffcaobf</c> strategies support + only the strategies <c>aoff</c>, <c>aoffcbf</c> and <c>aoffcaobf</c> support abandoned carriers. This feature also requires <seealso marker="#M_t">multiple thread specific instances</seealso> to be enabled. When enabling this feature, multiple thread specific @@ -340,10 +349,11 @@ allocators based on the <c>alloc_util</c> framework with the exception of <c>temp_alloc</c> (which would be pointless). </item> - <tag><marker id="M_as"><c><![CDATA[+M<S>as bf|aobf|aoff|aoffcaobf|gf|af]]></c></marker></tag> + <tag><marker id="M_as"><c><![CDATA[+M<S>as bf|aobf|aoff|aoffcbf|aoffcaobf|gf|af]]></c></marker></tag> <item> Allocation strategy. Valid strategies are <c>bf</c> (best fit), <c>aobf</c> (address order best fit), <c>aoff</c> (address order first fit), + <c>aoffcbf</c> (address order first fit carrier best fit), <c>aoffcaobf</c> (address order first fit carrier address order best fit), <c>gf</c> (good fit), and <c>af</c> (a fit). See <seealso marker="#strategy">the description of allocation strategies</seealso> in "the <c>alloc_util</c> framework" section.</item> |