[osg-users] Ready to tag OpenSceneGraph-3.3.8 dev release, please test
Robert Osfield
robert.osfield at gmail.com
Mon Jun 8 11:00:56 PDT 2015
Hi Jannik,
A quick reply as I am replying on my phone. My intention was to introduce
the same technique as osg::Node::asTransform() to avoid the dynamic cast,
but only do this if there was a noticeable performance regression.
The 20% regression you've seen could qualify. Is this with a release build?
As general note, I suspect you are over using callbacks.
Robert
On 8 Jun 2015 17:16, "Jannik Heller" <scrawl at baseoftrash.de> wrote:
> Hi Robert,
>
> I tried my application using the latest trunk and didn't notice any
> functional regressions.
>
> However, I did notice a performance decrease in the Update phase of about
> 20%, compared to OSG 3.2.0. This had me a bit concerned, so I digged
> through the changes and found commit
> https://github.com/openscenegraph/osg/commit/e967420323bb6e500425144cb305cf8060c1c515
> .
> Since that commit, we now get *four* dynamic_cast's per frame and
> NodeCallback, which I suspect is causing the slowdown. Two dynamic_cast's
> are in NodeCallback::run, then another two in NodeCallback::traverse.
>
> Changing to the non-deprecated Callback instead of NodeCallback gives a
> slight improvement with now just two dynamic_cast's in Callback::traverse,
> but still isn't optimal.
>
> Ideally, the application should be able to decide on the level of safety
> vs. level of performance it needs. If a Callback is only intended to be
> used on Nodes, there is little point in dynamic_casting to Node every frame.
>
> I think I can workaround the casts by using a custom class derived from
> osg::Callback as the base class for all my node callbacks. Still, it's
> quite a peculiar situation that does affect all users of the OSG.
>
> I guess my question comes down to, are there any plans on optimizing the
> Callback code before a final 3.4 release? If you aren't convinced, I can
> throw together a repro case and some profiling data, but I think the impact
> of 4 dynamic_cast's per frame and NodeCallback should be obvious.
>
> Cheers,
> Jannik
>
> ------------------
> Read this topic online here:
> http://forum.openscenegraph.org/viewtopic.php?p=63985#63985
>
>
>
>
>
> _______________________________________________
> osg-users mailing list
> osg-users at lists.openscenegraph.org
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openscenegraph.org/pipermail/osg-users-openscenegraph.org/attachments/20150608/ee60044c/attachment-0003.htm>
More information about the osg-users
mailing list