Performance deciphering - Profiler log analysis

Post Reply
User avatar
SynapticBytes
Posts: 74
Joined: Thu Feb 10, 2011 8:27 pm

Performance deciphering - Profiler log analysis

Post by SynapticBytes »

Hi All,

I was hoping someone who understands the profiler log could have a look at the output from my run and let me know if it all looks normal and anywhere I can aim to improve performance. I'm trying to compare my bullet implementation against an ODE engine.

I have a simple scene of a matrix of 12 x 12 x 12 (1728) spheres that I am dropping onto a plane. The world setup if pretty standard with all teh default parameters, and I'm using a time step of 1/120. The only thing I have direct control of is the motion state, as that is where my code is, and it's 23% of the total. Is that normal?

The next biggest thing seems to be performDiscreteCollisionDetection, at 50% of the internalSingleStepSimulation, 88% of which is in updateAabbs. Now I guess that all makes sense given the number of objects, but I'm just wondering if there is anything I can explicitly do within the standard bullet configuration to improve performance?

Thanks
----------------------------------
Profiling: Root (total running time: 5.164 ms) ---
0 -- stepSimulation (99.96 %) :: 5.162 ms / frame (1 calls)
Unaccounted: (0.039 %) :: 0.002 ms
...----------------------------------
...Profiling: stepSimulation (total running time: 5.162 ms) ---
...0 -- synchronizeMotionStates (23.46 %) :: 1.211 ms / frame (1 calls)
...1 -- internalSingleStepSimulation (73.56 %) :: 3.797 ms / frame (1 calls)
...Unaccounted: (2.983 %) :: 0.154 ms
......----------------------------------
......Profiling: internalSingleStepSimulation (total running time: 3.797 ms) ---
......0 -- updateActivationState (0.66 %) :: 0.025 ms / frame (1 calls)
......1 -- updateActions (0.00 %) :: 0.000 ms / frame (1 calls)
......2 -- integrateTransforms (10.56 %) :: 0.401 ms / frame (1 calls)
......3 -- solveConstraints (16.30 %) :: 0.619 ms / frame (1 calls)
......4 -- calculateSimulationIslands (1.16 %) :: 0.044 ms / frame (1 calls)
......5 -- performDiscreteCollisionDetection (51.33 %) :: 1.949 ms / frame (1 calls)
......6 -- createPredictiveContacts (7.22 %) :: 0.274 ms / frame (1 calls)
......7 -- predictUnconstraintMotion (12.67 %) :: 0.481 ms / frame (1 calls)
......Unaccounted: (0.105 %) :: 0.004 ms
.........----------------------------------
.........Profiling: solveConstraints (total running time: 0.619 ms) ---
.........0 -- solveGroup (16.48 %) :: 0.102 ms / frame (1 calls)
.........1 -- processIslands (69.47 %) :: 0.430 ms / frame (1 calls)
.........2 -- islandUnionFindAndQuickSort (13.41 %) :: 0.083 ms / frame (1 calls)
.........Unaccounted: (0.646 %) :: 0.004 ms
............----------------------------------
............Profiling: solveGroup (total running time: 0.102 ms) ---
............0 -- solveGroupCacheFriendlyIterations (16.67 %) :: 0.017 ms / frame (1 calls)
............1 -- solveGroupCacheFriendlySetup (65.69 %) :: 0.067 ms / frame (1 calls)
............Unaccounted: (17.647 %) :: 0.018 ms
............----------------------------------
............Profiling: processIslands (total running time: 0.430 ms) ---
............0 -- solveGroup (87.44 %) :: 0.376 ms / frame (1 calls)
............Unaccounted: (12.558 %) :: 0.054 ms
...............----------------------------------
...............Profiling: solveGroup (total running time: 0.376 ms) ---
...............0 -- solveGroupCacheFriendlyIterations (17.55 %) :: 0.066 ms / frame (1 calls)
...............1 -- solveGroupCacheFriendlySetup (70.74 %) :: 0.266 ms / frame (1 calls)
...............Unaccounted: (11.702 %) :: 0.044 ms
.........----------------------------------
.........Profiling: performDiscreteCollisionDetection (total running time: 1.949 ms) ---
.........0 -- dispatchAllCollisionPairs (11.03 %) :: 0.215 ms / frame (1 calls)
.........1 -- calculateOverlappingPairs (0.10 %) :: 0.002 ms / frame (1 calls)
.........2 -- updateAabbs (88.71 %) :: 1.729 ms / frame (1 calls)
.........Unaccounted: (0.154 %) :: 0.003 ms
.........----------------------------------
.........Profiling: createPredictiveContacts (total running time: 0.274 ms) ---
.........0 -- release predictive contact manifolds (0.00 %) :: 0.000 ms / frame (1 calls)
.........Unaccounted: (100.000 %) :: 0.274 ms
Post Reply