Browse thread
OCaml runtime using too much memory in 64-bit Linux
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| From: | Vladimir Shabanov <vshabanoff@g...> |
| Subject: | Re: [Caml-list] OCaml runtime using too much memory in 64-bit Linux |
2007/11/14, Romain Beauxis <romain.beauxis@gmail.com>: > Following Sam's answer on similar issue with our application, here are two > compared outputs for the same informations: > > -- On i386: > 5:13 toots@selassie ~% OCAMLRUNPARAM="v=12" liquidsoap 'output.dummy(blank())' > Growing heap to 480k bytes > Growing page table to 2648 entries > Growing heap to 720k bytes > Growing page table to 2710 entries > Growing heap to 960k bytes > Growing page table to 2815 entries > > -- On amd64: > 5:12 toots@ras-macintosh ~/sources/svn/savonet/trunk/liquidsoap/src% > OCAMLRUNPARAM="v=12" ./liquidsoap 'output.dummy(blank())' > Growing heap to 960k bytes > Growing page table to 104640820 entries > Growing heap to 1440k bytes > Growing heap to 1920k bytes > > It seems that the "Growing page table to 104640820 entries" in amd64's log is > quite enourmeous, compared to similar values for i386. I also have problems with my application on amd64. The difference is that I have additional memory allocated only in bytecode executable. native amd64: $ OCAMLRUNPARAM="v=12" ./_build/game.opt Growing heap to 960k bytes Growing page table to 72391 entries ... (program output stripped) Growing heap to 1440k bytes Growing page table to 90522 entries ... bytecode amd64: $ OCAMLRUNPARAM="v=12" ./_build/game Initial stack limit: 8192k bytes Growing gray_vals to 32k bytes Growing heap to 960k bytes Growing page table to 141518746 entries ... Growing heap to 1440k bytes ... It gives me 80--300MB of additional memory allocated (virt & res). Interestingly enough the number of page table entries is different from run to run (hence the non-constant additional memory size). In native executable page table entries count is constant.