When I have profiled in the past using CodeAnalyst Group::traverse was
indeed a high-traffic method. I have a more recent profile listed here:
CS:EIP Symbol + Offset 64-bit Timer
samples
0x498920 osg::Group::removeChildren 2015
0x498c20 osg::Group::insertChild 485
0x42a880 osg::State::setTexCoordPointer 424
0x5032f0 osg::Transform::computeBound 349
0x4219a0 osg::AnimationPath::write 341
0x422f10 osg::AnimationPath::getInterpolatedControlPoint 290
0x41d430 osg::Matrix3::operator= 271
0x49dc50 osg::ImageSequence::imageIndex 212
0x41f030 osg::Camera::DrawCallback::DrawCallback 211
0x4bf6b0 osg::Node::getOrCreateStateSet 184
0x41a510 osg::CameraView::`copy constructor closure' 184
0x41f2b0 osg::AnimationPathCallback::update 167
0x413de0 osg::Matrixd::postMult 160
0x496430 osg::GraphicsContext::getOrCreateCompileContext 152
0x4b8c10 osg::Matrixd::orthoNormalize 149
0x41e940 osg::FlushDeletedGLObjectsOperation::operator= 147
0x42a800 osg::PositionAttitudeTransform::accept 134
0x4bf5d0 osg::Node::setStateSet 131
0x498720 osg::Group::releaseGLObjects 130
0x4d36f0 osg::Quat::makeRotate 129
0x503980 osg::computeLocalToEye 127
0x414280 osg::Matrixd::transform3x3 107
0x413f60 osg::Matrixd::preMult 104
23 functions, 953 instructions, Total: 6603 samples, 64.15% of samples in
the module, 16.48% of total session samples
This is a profile of a space ship game we are making which consists of many
nodes and makes use of the kdtree and collision detection.
I am getting latest version today and will post back (I'll profile with
these optimizations as well).
It should be noted that we are experiencing problems with some of the
optimization flags (e.g. crashes, particals in wrong place, and seams in
textures). So I'll be sure to put stress on this optimization and let you
know if anything breaks.
For anyone interested I believe these optimizations are stable:
osgUtil::Optimizer::REMOVE_LOADED_PROXY_NODES |
osgUtil::Optimizer::COMBINE_ADJACENT_LODS |
osgUtil::Optimizer::SHARE_DUPLICATE_STATE |
osgUtil::Optimizer::MERGE_GEOMETRY |
osgUtil::Optimizer::CHECK_GEOMETRY |
osgUtil::Optimizer::OPTIMIZE_TEXTURE_SETTINGS |
osgUtil::Optimizer::STATIC_OBJECT_DETECTION;
I'll have to painfully work out which of the others are not. :(
p.s. I've created a subject name, since there previously was not one.
James Killian
----- Original Message -----
From: Michael Platings
To: OpenSceneGraph Submissions
Sent: Monday, May 04, 2009 12:48 PM
Subject: [osg-submissions] (no subject)
Hi Robert,
further to the discussion on Visual C++ checked iterators, I've done some
profiling which suggests that Group::traverse and
Polytope::setAndTransformProvidingInverse are the two functions that would
benefit most from some trivial optimisation. I've attached the changes I've
made, which should be fairly uncontroversial.
For the benefit of those who can disable checked iterators, I've added an
option for CMake.
Thanks
______________________________________________________________________
This email and any files transmitted with it are confidential and
intended solely for the use of the individual or entity to whom they
are addressed. If you have received this email in error please notify
the system manager.
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email
______________________________________________________________________
_______________________________________________
osg-submissions mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org
_______________________________________________
osg-submissions mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org