Hi Alex,

There could be any number of reasons why this could be happening, and obviously 
some down to coding, however if you are using caching at all, then it maybe 
down to how long you've told the cache to keep the models, even when not used. 
I can't remember what the default is, but if set to never get rid of the 
models, then the only time their memory will be released is when the 
application shuts down - not merely closing and destroying the window. 

This leads on to another reason why you maybe seeing the memory usage you 
report in that, depending on the design of your app architecture, if you leave 
the management of dll's to the O.S., then dll's are only loaded on an 
"as-required" basis, and are only unloaded when the app shuts down. OSG has a 
number of static memory constructs "singletons" that are created at dll load 
time, and are not released until dll unload time (app shut down). One  way 
around this is to manage the dll load and unload yourself, however this can be 
very tiresome ;-(

I would suggest that, unless you are witnessing a continual increase in the 
memory allocated to your app, even when you are loading and unloading the same 
model, then I wouldn't be too concerned. Obviously if you are witnessing 
unrestricted memory consumption then something is up, but I suspect not at the 
OSG end.

Finally, in my experience, beware of the false positive memory leaks reported 
by Visual Studio. Plenty of back talk on this in the archives, but suffice it 
to say VS unloads MFC too early in the app shut down process, which triggers a 
dump of unreleased memory warnings. VS crystal ball not working too well as 
when OSG dll's unload - usually after MFC due to VS problem with scheduling 
library loads/unloads - it releases its own memory. Where real leaks actually 
exist, more often than not it can be traced back to app coding errors, or 
inappropriate use of non ref_ptr references to scenegraph entries. I've wasted 
days in the past on this. You can decrease some of the false positives by 
forcing the load of the OSG dll's yourself, but sometimes life is just too 
short to be bothered !

Hope this helps.

Kind regards

Neil.


---- Alexandre Amalric <[email protected]> wrote: 
> Hi osg-users,
> 
> I'm developping an application based on the example "osgviewerMFC" but I
> don't understand the memory consumption from this example.
> 
> 1) when I launch osgviewerMFC.exe the memory used is about 10Mo
> 2) then I open a model, memory rise to let's say 50Mo (depends on the model)
> 3) then I close the window and memory do not get back to 10Mo like desired
> but stay at let say 30Mo (in my case).
> 
> Why osgviewerMFC.exe use much memory after opening and closing a model than
> before doing nothing ??
>  I am asking this because I have the same behaviour with my own application,
> I suppose something isn't well destroyed when closing a window (removing a
> viewer).
> 
> Kind regards,
> -- 
> Alexandre AMALRIC                   Ingénieur R&D
> ===================================
> PIXXIM S.A. 73E, rue Perrin-Solliers 13006 Marseille
> http://www.pixxim.fr

_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to