What does Performer do with his memories? :-)

New Message Reply Date view Thread view Subject view Author view

Andreas Wierse (Wierse++at++RUS.Uni-Stuttgart.DE)
Thu, 21 Sep 1995 17:42:47 +0000


Hi,

yesterday we compared the memory usage of our Inventor-based renderer
with a (very simple) Performer-based renderer. The Inventor-based
renderer received its data out of shared memory and created its
inventor nodes from it. The data is geometry data (209 parts per data
set; five data sets) with colour information.

To monitor the memory usage we used gmemusage (really nice tool :-)

When the renderer started its work the memory part labeled "Break" grew
from a few MB to 88 MB (I guess this is malloced memory?). The shared
memory added about 50 MB. When we switched on the lighting, the
"Break"-part grew to ~ 194 MB!! I guess there is some space needed
to compute the normals. Cacheing is also switched on.

Then we saved our five data sets (timesteps) into Inventor files,
approx. 8 MB each and wrote a small Performer program (crash) that uses
LoadFile to load the data.

First, the total size of each of the two process that Performer starts
was reported with approx. 250 MB. No surprise so far :-), since the
resident part stayed small; we checked that Performer created a shared
arena of ~ 250 MB. After loading the data sets we had about 56 MB
really used (resident), 21 of which were listed under "Break", 31 under RW.

Here the exact numbers of the gmemusage output (shortened to the
"interesting" ones):

----------------------------------------------------------------------
        All Programs:
                Name Size Res Phys Priv Copies
                Free 109200 109200 109200 109200 1
           crash.OPT 529300 56606 55394 54776 2
                Irix 81684 81684 81684 81684 1
              Totals: 1082292 274782 262140 259203
----------------------------------------------------------------------
           crash.OPT:
                Name Type Size Res Phys Priv
           crash.OPT Break 21868 21852 21852 21852
                zero RW 484472 31532 31528 31524
              Totals: 529686 56670 55394 54776

The interesting point now is that the FS-Cache listed by gmemusage grew
rather large (67 MB) and shrunk to 36 MB exactly in the moment we
cancelled the Performer-based renderer:

----------------------------------------------------------------------
                Irix: before crash runs
                Name Type Size Res Phys Priv
            FS Cache Irix 0 0 29183 29183
                Heap Irix 0 0 7761 7761
              Totals: 0 0 42966 42966
----------------------------------------------------------------------
                Irix: while crash runs
                Name Type Size Res Phys Priv
            FS Cache Irix 0 0 67598 67598
                Heap Irix 0 0 7841 7841
              Totals: 0 0 81685 81685
----------------------------------------------------------------------
                Irix: after crash has finished
                Name Type Size Res Phys Priv
            FS Cache Irix 0 0 36613 36613
                Heap Irix 0 0 7843 7843
              Totals: 0 0 50392 50392

Ok, if we count the two numbers (56 and 31 MB) together we are still far
below what Inventor needs, but it would be nice to know why the FS-Cache
grows that much. Maybe there are some surprises hidden which will strike
us, when we try to load really large data sets.

So please let us know if you have any explanations or comments
concerning the memory usage of both, the Inventor-based and the
Performer-based renderer.

Thanks in Advance

Andreas

-- 
 Andreas Wierse                |  Computer Center University of Stuttgart
 wierse++at++rus.uni-stuttgart.de   |  Allmandring 30, D-70550 Stuttgart, Germany
 +49 711-6855796 (FAX:-682357) |  '90 VFR750F (red, of course!) rrr#9 DoD#SUE6
 http://www.uni-stuttgart.de/People/wierse.html

New Message Reply Date view Thread view Subject view Author view

This archive was generated by hypermail 2.0b2 on Mon Aug 10 1998 - 17:51:53 PDT

This message has been cleansed for anti-spam protection. Replace '++at++' in any mail addresses with the '@' symbol.