summaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorJason Evans <jasone@canonware.com>2015-03-07 04:05:16 (GMT)
committerJason Evans <jasone@canonware.com>2015-03-07 04:18:34 (GMT)
commitf044bb219e9bfcc585f64f097e5ab0b5837c0451 (patch)
tree8dc7080777b80e597e4eed3e1ad003243c300c49 /doc
parent4d871f73af6b8310564dfcb63357dbfe8b1a1529 (diff)
downloadjemalloc-f044bb219e9bfcc585f64f097e5ab0b5837c0451.zip
jemalloc-f044bb219e9bfcc585f64f097e5ab0b5837c0451.tar.gz
jemalloc-f044bb219e9bfcc585f64f097e5ab0b5837c0451.tar.bz2
Change default chunk size from 4 MiB to 256 KiB.
Recent changes have improved huge allocation scalability, which removes upward pressure to set the chunk size so large that huge allocations are rare. Smaller chunks are more likely to completely drain, so set the default to the smallest size that doesn't leave excessive unusable trailing space in chunk headers.
Diffstat (limited to 'doc')
-rw-r--r--doc/jemalloc.xml.in26
1 files changed, 13 insertions, 13 deletions
diff --git a/doc/jemalloc.xml.in b/doc/jemalloc.xml.in
index b392fa9..747e03f 100644
--- a/doc/jemalloc.xml.in
+++ b/doc/jemalloc.xml.in
@@ -571,8 +571,8 @@ for (i = 0; i < nbins; i++) {
both large or both huge. In such cases shrinkage always succeeds, but
growth only succeeds if the trailing memory is currently available.</para>
- <para>Assuming 4 MiB chunks, 4 KiB pages, and a 16-byte quantum on a 64-bit
- system, the size classes in each category are as shown in <xref
+ <para>Assuming 256 KiB chunks, 4 KiB pages, and a 16-byte quantum on a
+ 64-bit system, the size classes in each category are as shown in <xref
linkend="size_classes" xrefstyle="template:Table %n"/>.</para>
<table xml:id="size_classes" frame="all">
@@ -627,7 +627,7 @@ for (i = 0; i < nbins; i++) {
<entry>[10 KiB, 12 KiB, 14 KiB]</entry>
</row>
<row>
- <entry morerows="8">Large</entry>
+ <entry morerows="4">Large</entry>
<entry>2 KiB</entry>
<entry>[16 KiB]</entry>
</row>
@@ -645,7 +645,12 @@ for (i = 0; i < nbins; i++) {
</row>
<row>
<entry>32 KiB</entry>
- <entry>[160 KiB, 192 KiB, 224 KiB, 256 KiB]</entry>
+ <entry>[160 KiB, 192 KiB, 224 KiB]</entry>
+ </row>
+ <row>
+ <entry morerows="9">Huge</entry>
+ <entry>32 KiB</entry>
+ <entry>[256 KiB]</entry>
</row>
<row>
<entry>64 KiB</entry>
@@ -653,20 +658,15 @@ for (i = 0; i < nbins; i++) {
</row>
<row>
<entry>128 KiB</entry>
- <entry>[640 KiB, 768 KiB, 896 KiB, 1024 KiB]</entry>
+ <entry>[640 KiB, 768 KiB, 896 KiB, 1 MiB]</entry>
</row>
<row>
<entry>256 KiB</entry>
- <entry>[1280 KiB, 1536 KiB, 1792 KiB, 2048 KiB]</entry>
- </row>
- <row>
- <entry>512 KiB</entry>
- <entry>[2560 KiB, 3072 KiB, 3584 KiB]</entry>
+ <entry>[1280 KiB, 1536 KiB, 1792 KiB, 2 MiB]</entry>
</row>
<row>
- <entry morerows="5">Huge</entry>
<entry>512 KiB</entry>
- <entry>[4 MiB]</entry>
+ <entry>[2560 KiB, 3 MiB, 3584 KiB, 4 MiB]</entry>
</row>
<row>
<entry>1 MiB</entry>
@@ -907,7 +907,7 @@ for (i = 0; i < nbins; i++) {
<listitem><para>Virtual memory chunk size (log base 2). If a chunk
size outside the supported size range is specified, the size is
silently clipped to the minimum/maximum supported size. The default
- chunk size is 4 MiB (2^22).
+ chunk size is 256 KiB (2^18).
</para></listitem>
</varlistentry>