caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: "Dr. Thomas Fischbacher" <t.fischbacher@soton.ac.uk>
To: Caml-list List <caml-list@inria.fr>
Subject: Memory statistics tool
Date: Wed, 23 Jul 2008 11:54:16 +0100	[thread overview]
Message-ID: <48870DD8.4050906@soton.ac.uk> (raw)


Dear OCaml folks,

when building large applications that work on complicated and highly
networked data, one issue that easily comes up is to get some idea
about what chunks of data eat all your memory. Now, it would be
marvellous for data structure optimization purposes if there were a
function

memory_footprint: 'a -> int64 (or maybe float),

which takes as argument a root
(e.g. Obj.magic [|Obj.magic firstthingy; Obj.magic secondthingy;
       Obj.magic thirdthingy|])
and tells me how many cells are occupied by those ML data structures
reachable from that root. Basically, this would correspond to using
the GC's traversal mechanism and doing some internal statistics at the
same time. My guess would be that the Marshal module "almost" has such
a function already, to determine the amount of memory required to hold
a string-serialized value. But as these values get compacted, the length
of the string does not correspond to the number of words occupied by the
in-memory data.

Is there already something like that? Has anyone already built such
a tool?

-- 
best regards,
Thomas Fischbacher
t.fischbacher@soton.ac.uk




             reply	other threads:[~2008-07-23 10:54 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-07-23 10:54 Dr. Thomas Fischbacher [this message]
2008-07-23 11:47 ` [Caml-list] " Daniel Bünzli
2008-07-23 12:40   ` Jan Kybic
2008-07-23 12:44 ` dmitry grebeniuk
2008-07-23 13:09   ` Dr. Thomas Fischbacher
2008-07-23 13:16     ` Alain Frisch
2008-07-24 12:48       ` Dr. Thomas Fischbacher
2008-07-24 15:14         ` Alain Frisch
2008-07-24 15:44           ` Dr. Thomas Fischbacher
2008-07-24 16:12             ` Alain Frisch

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=48870DD8.4050906@soton.ac.uk \
    --to=t.fischbacher@soton.ac.uk \
    --cc=caml-list@inria.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).