From Gnash Project Wiki

Jump to: navigation, search

Static and dynamic memory consumption of various Gnash builds

Runtime memory footprint

Memory footprint of standalone Gnash running Bruno Bozzetto's Yes & No

Test version: Gnash CVS from March 2007 (or maybe cvs20060909?) configured with

--disable-plugin --disable-debugger --enable-sound=no
agg-gtk 33372k 14m 8948k
agg-sdl 26564k 9396k 5124k
agg-fltk 24556k 8992k 4220k
cairo-fltk 184m 128m 4284k
cairo-gtk 192m 133m 8000k
cairo-sdl 187m 129m 5256k
opengl-gtk 62620k 15m 9336k
opengl-sdl 54932 10m 5324
  • VSIZ = Virtual memory size, the total amount Gnash has requested from the OS
  • RSS = Resident Set Size, the amount of physical RAM Gnash is actually using
  • SHR = Shared Memory, indicative of the code size.

The most memory-economical combination is AGG-FLTK at 24MB VRAM, 9MB swapped in (the current agg-fb, not tested here, should be even smaller.)

Cairo VSIZ hovered around 50MB during most of the movie but bloated out to 190MB during the creation and moving of hundreds of small objects.

Last measured some time before 25 Mar 2007.

Static code size of gnash components

Or "Where's the text bloat?"

                         text  data/bss
libgnashgeo:             66538   916
libgnashgui: agg-fb      36280  1108
             agg-gtk     75247  2112
             agg-sdl     32597  1256
             cairo-gtk   69035  2096
             cairo-sdl   31386  1252
             opengl-gtk  70067  2192
             opengl-kde  50879  2280
             opengl-sdl  30892  1236
libgnashserver:        1613300  19504  Contains asobjs, parser, vm
libgnashasobjs:         589994  10872
libgnashamf:             42936  952
             agg-fb     531987  6244
             agg-fltk   531991  6244
             agg-gtk    531987  6244
             agg-sdl    532005  6244
             cairo-fltk  45505  1452
             cairo-gtk   45624  1508
             cairo-kde   45503  1452
             cairo-sdl   45519  1460
             opengl-gtk  49682  1592
             opengl-kde  49561  1536
             opengl-sdl  49577  1544
libgnashplugin: ?
libklashpart: ?
gnash:                    ~19k  ~16k
gparser:                 20.8k   947
gprocessor:              15.5k   960

In brief:

  • Most of the code size is in the device-independent parts of Gnash.
  • The smallest render-GUI combination is cairo-sdl, with opengl-sdl a close second.
  • Using AGG adds half a megabyte of code to Gnash, roughly a quarter of the total. This can be greatly reduced by configuring --with-pixelformat= (see configure --help).