Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
profiling
07-19-2010, 10:36 AM,
#16
 
Yeah, that's line 836 in graphics_renderers.cpp. Probably only really needs to be done once, however it should only get called in the non-shader path.
Reply
12-23-2010, 09:32 AM,
#17
 
Have been profiling cardynamics changes lately and noticed that we are spending a lot of time in DRAWABLE_CONTAINER_HELPER::AccumulateSize::operator(). I wonder if we are missing an optimization opportunity here.

Code:
13.75      1.76     1.76 _mcount_private
12.11      3.31     1.55 16467397     0.00     0.00  void DRAWABLE_CONTAINER_HELPER::AccumulateSize::operator()<keyed_container<DRAWABLE> >(keyed_container<DRAWABLE> const&)
  7.73      4.30     0.99    30452     0.00     0.00  void SCENENODE::Traverse<PTRVECTOR>(DRAWABLE_CONTAINER<PTRVECTOR>&, MATRIX4<float> const&)
  3.75      4.78     0.48    16986     0.00     0.00  void AABB_SPACE_PARTITIONING_NODE<DRAWABLE*, 1u>::Query<FRUSTUM, std::vector<DRAWABLE*, std::allocator<DRAWABLE*> > >(FRUSTUM const&, std::vector<DRAWABLE*, std::allocator<DRAWABLE*> >&) const
  2.58      5.11     0.33  1333989     0.00     0.00  RENDER_INPUT_SCENE::SelectTexturing(DRAWABLE&, GLSTATEMANAGER&)
  2.34      5.41     0.30  1333964     0.00     0.00  RENDER_INPUT_SCENE::SelectTransformStart(DRAWABLE&, GLSTATEMANAGER&)
Reply
12-23-2010, 09:08 PM,
#18
 
Good catch. It was happening because the scenenode was doing an early out if its drawlist was empty, and empty() was calling size() which is more expensive than I realized. Traverse() is so fast (it just seems slow because it's called so frequently) that it's actually better to skip the early-out check entirely.
Reply
12-24-2010, 10:42 AM,
#19
 
We need a wiki page on how to profile VDrift. If anyone would like to start one, they could probably use some of the information in this thread.

http://wiki.vdrift.net/VDrift_Documentat...ction=edit
Reply
12-24-2010, 01:27 PM,
#20
 
OK, I put something really simple there.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)