<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div>On Jun 1, 2013, at 1:53 PM, Xose Vazquez Perez <<a href="mailto:xose.vazquez@gmail.com">xose.vazquez@gmail.com</a>> wrote:</div><blockquote type="cite">3.1 : is fine<br>3.2 : bad performance <---- bug since 3.2<br>3.3.x : bad performance<br>git-tree : bad performance<br><br>OS: Fedora 17<br>kernel: 3.9.4-100<br>x86_64 machine<br><br>test done with ebizzy-0.3 <<a href="http://ebizzy.sf.net">http://ebizzy.sf.net</a>><br>code: <a href="http://sf.net/projects/ebizzy/files/latest/download?source=files">http://sf.net/projects/ebizzy/files/latest/download?source=files</a><br><br>jemalloc-3.3.1:<br><br>$ LD_PRELOAD=/usr/lib64/libjemalloc.so.1 ./ebizzy -s 131072<br>47525 records/s<br><br>[…]<br><br>Same test done with jemalloc-3.1.0 (glibc-2.15 and tcmalloc-2.0 get similar results):<br><br>$ LD_PRELOAD=/home/xose/bajar/j/3.1/lib64/libjemalloc.so.1 ./ebizzy -s 131072<br>335568 records/s<br><br>[…]<br></blockquote></div><br><div>This is due to the following change:</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">       </span><a href="http://www.canonware.com/cgi-bin/gitweb.cgi?p=jemalloc.git;a=commitdiff;h=e3d13060c8a04f08764b16b003169eb205fa09eb">http://www.canonware.com/cgi-bin/gitweb.cgi?p=jemalloc.git;a=commitdiff;h=e3d13060c8a04f08764b16b003169eb205fa09eb</a></div><div><br></div><div>Specifically, this part of the change:</div><div><br></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div><span style="font-family: monospace; font-size: small; background-color: rgb(255, 255, 255); ">Remove the limitation that prevented purging unless at least one chunk</span></div><div><span style="font-family: monospace; font-size: small; background-color: rgb(255, 255, 255); ">worth of dirty pages had accumulated in an arena.  This limitation was</span></div><div><span style="font-family: monospace; font-size: small; background-color: rgb(255, 255, 255); ">intended to avoid excessive purging for small applications, but the</span></div><div><span style="font-family: monospace; font-size: small; background-color: rgb(255, 255, 255); ">threshold was arbitrary, and the effect of questionable utility.</span></div></blockquote><div><br></div><div>In essence, the effect you're seeing is due to the microbenchmark nature of ebizzy.  The allocator threads in ebizzy each have a working set that oscillates between 0 and 131071 bytes; every free() call causes an madvise() call.  Set MALLOC_CONF=lg_dirty_mult:-1 to measure performance with unused dirty page purging disabled.</div><div><br></div><div>Jason</div></body></html>