0026199: Visualization - use NCollection_IndexedMap instead of NCollection_Sequence...
authordbp <dbp@opencascade.com>
Thu, 21 May 2015 11:30:38 +0000 (14:30 +0300)
committerbugmaster <bugmaster@opencascade.com>
Thu, 21 May 2015 11:33:32 +0000 (14:33 +0300)
commit385c43e7ea176f3e42e186147b293d523dea1baf
treea2f7bc546c23019b57aa525fff2bfe5884a5c887
parentb586500b1e0a0d74472af2846564b636cb7f2e57
0026199: Visualization - use NCollection_IndexedMap instead of NCollection_Sequence in OpenGl_BVHClipPrimitiveSet to improve performance

This patch improves performance of OpenGl_BVHClipPrimitiveSet. In particular, on the attached test case for 90 000 spheres the results are the following:

1) Master: vdisplay - 55 sec, 5 FPS, 1.4 GB memory, vclear - 180 sec.
2) Branch: vdisplay - 1.3 sec, 5 FPS, 1.4 GB memory, vclear - 90 sec.

So, the patch improves vdisplay in ~40 times, and vclear in ~2 times without extra memory and with no impact on rendering performance. However, the vclear time is still significant. According to profile results, it is due to Graphic3d_Structure::DisconnectAll method.

Test case for issue CR26199

Fix invalid warnings in 'vdefaults' command.
src/OpenGl/OpenGl_BVHClipPrimitiveSet.cxx
src/OpenGl/OpenGl_BVHClipPrimitiveSet.hxx
src/ViewerTest/ViewerTest_ViewerCommands.cxx
tests/bugs/vis/bug26199 [new file with mode: 0644]