<html><head><meta http-equiv="Content-Type" content="text/html charset=iso-8859-1"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">On Nov 26, 2013, at 11:40 AM, Eduardo Silva <<a href="mailto:edsiper@gmail.com">edsiper@gmail.com</a>> wrote:<br><div><blockquote type="cite"><div dir="ltr"><div>i am interested into gather memory usage per Linux thread, as i am using jemalloc i think this can be done quering the arenas per thread. if i am correct, do you have some code example that accomplish something similar to this ?</div>
</div></blockquote><br></div><div>Threads don't own memory; allocated regions can be shared among threads, and allocation/deallocation can be split between threads. That said, jemalloc does track total volume of allocation and deallocation on a per thread basis, so you can derive the information you want as long as you account for allocated regions that are shared among threads. Take a look at the "thread.allocated" and "thread.deallocated" mallctl() interfaces in the man page:</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre"> </span><a href="http://www.canonware.com/download/jemalloc/jemalloc-latest/doc/jemalloc.html">http://www.canonware.com/download/jemalloc/jemalloc-latest/doc/jemalloc.html</a></div><div><br></div><div>There is a relevant test program included with jemalloc:</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre"> </span><a href="https://github.com/jemalloc/jemalloc/blob/dev/test/allocated.c">https://github.com/jemalloc/jemalloc/blob/dev/test/allocated.c</a></div><div><br></div><div>Jason</div></body></html>