keeping memory usage at certain limit

Ricardo Nabinger Sanchez rnsanchez at wait4.org
Tue Apr 29 04:43:35 PDT 2014


On Mon, 28 Apr 2014 15:08:16 +0400
Antony Dovgal <antony.dovgal at gmail.com> wrote:

> I suspect that this is caused by memory fragmentation issues, though I've no idea how to prove it (or at least all my ideas involve complex stats and are quite inefficient).

You could dump your pointers and their sizes, and plot that information
graphically, including relevant info from jemalloc (map bases and their
sizes as well).  If it's heavily fragmented, it will be apparent.

If that is indeed your case, and you can modify your data container,
perhaps switching to index-based access could solve your problem.  That
would require you to forget about pointers and instead use an index, so
that your data container is free to move data around and shrink the
memory in use.  There is a lot of management and memory copying,
meaning the impact of such a change should be quite perceptible.

Of course, this is no trivial change.  Dealing with long- and
short-lived objects is challenging.  :-)

Cheers,

-- 
Ricardo Nabinger Sanchez           http://rnsanchez.wait4.org/
  "Left to themselves, things tend to go from bad to worse."


More information about the jemalloc-discuss mailing list