Hi, I've just had compilation of libX11 fail on my system because it ran out of memory during generation of the reference documentation using groff.
http://cgit.freedesktop.org/xorg/lib/libX11/snapshot/libX11-1.3.2.tar.bz2 Using strace I found that running the following command in the specs/libX11 directory requires about 400MB of memory. troff -ms -dxV="libX11 1.3.2" -I. -dwww-image-template=. -Thtml libX11.ms &> /dev/null Now I don't know groff/troff so I ask you, is this not excessive? I would like to understand why troff uses so much memory. Valgrind's massif shows a more or less linear increase of memory use over time. These are the two parts that in the end are responsible for the majority of allocated memory: -------------------------------------------------------------------------------- n time(i) total(B) useful-heap(B) extra-heap(B) stacks(B) -------------------------------------------------------------------------------- 287 56,715,762,716 403,261,336 381,991,029 21,270,307 0 94.73% (381,991,029B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. ->67.59% (272,573,250B) 0x443D3C: string::operator=(string const&) (string.cpp:126) | ->62.42% (251,730,382B) 0x4278EA: statem::add_tag_ta() (mtsm.cpp:289) | | ->62.42% (251,730,382B) 0x40CBA4: environment::construct_state(int) (env.cpp:2258) | | ->60.65% (244,595,650B) 0x410E40: environment::add_char(charinfo*) (env.cpp:316) | | | ->60.31% (243,210,666B) 0x42153C: process_input_stack() (input.cpp:2834) | | | | ->60.31% (243,210,666B) 0x4227E1: process_input_file(char const*) (input.cpp:7373) | | | | ->60.31% (243,210,666B) 0x423918: main (input.cpp:7680) (...) ->22.89% (92,301,216B) 0x40CAF8: environment::construct_state(int) (env.cpp:2250) | ->22.58% (91,041,888B) 0x410E40: environment::add_char(charinfo*) (env.cpp:316) | | ->22.46% (90,572,496B) 0x42153C: process_input_stack() (input.cpp:2834) | | | ->22.46% (90,572,496B) 0x4227E1: process_input_file(char const*) (input.cpp:7373) | | | ->22.46% (90,572,496B) 0x423918: main (input.cpp:7680) | | | Regards, Maurice. -- Maurice van der Pot Gentoo Linux Developer [email protected] http://www.gentoo.org Gnome Planner Developer [email protected] http://live.gnome.org/Planner
pgpTnlOorFWLV.pgp
Description: PGP signature
