Archived issue #0031987
Visualization - Slow rectangular selection on models with big number of sensitives
Description
On big models function SelectMgr_ViewerSelector::traverseObject can take a lot of time because of checking if all sensitives were selected (in case of rectangle/box selection with disabled IsOverlapAllowed flag).
As a solution, it is supposed to simplify this check by pre-calculation of number of owners sensitives during computing of selection.
As a solution, it is supposed to simplify this check by pre-calculation of number of owners sensitives during computing of selection.
Public activity
5 archived notes
Participants are labeled by their role within this record.
Branch [archived branch] has been created by Commenter 3.
[revision removed]
Detailed log of new commits:
Author: Author
Date: Tue Dec 8 13:32:07 2020 +0300
0031987: Visualization - Slow rectangular selection on models with big number of sensitives
SelectMgr_SensitiveEntitySet now stores a map of registered owners with a counter of registered entities.
SelectMgr_ViewerSelector::traverseObject() now reads the number of sensitive entities for specific owner
from SelectMgr_SensitiveEntitySet instead of re-computing it every time.
[revision removed]
Detailed log of new commits:
Author: Author
Date: Tue Dec 8 13:32:07 2020 +0300
0031987: Visualization - Slow rectangular selection on models with big number of sensitives
SelectMgr_SensitiveEntitySet now stores a map of registered owners with a counter of registered entities.
SelectMgr_ViewerSelector::traverseObject() now reads the number of sensitive entities for specific owner
from SelectMgr_SensitiveEntitySet instead of re-computing it every time.
Please raise the patch
- OCCT branch: [archived branch]
http://jenkins-test-12.nnov.opencascade.com:8080/view/CR31987-master-KGV/
- OCCT branch: [archived branch]
http://jenkins-test-12.nnov.opencascade.com:8080/view/CR31987-master-KGV/
Tested on the model with ~1500000 sensitives and 5000 owners. Selection time for rectangular selection has decreased from 180s to 5s.
Combination -
OCCT branch : [archived branch]
master SHA - [revision removed]
[revision removed]
Products branch : [archived branch] SHA - [revision removed]
was compiled on Linux, MacOS and Windows platforms and tested in optimize mode.
Number of compiler warnings:
No new/fixed warnings
Regressions/Differences/Improvements:
No regressions/differences
CPU differences:
Debian80-64:
OCCT
Total CPU difference: 17756.510000000126 / 18090.92999999998 [-1.85%]
Products
Total CPU difference: 12330.210000000125 / 12342.950000000128 [-0.10%]
Windows-64-VC14:
OCCT
Total CPU difference: 19429.09375 / 19751.71875 [-1.63%]
Products
Total CPU difference: 13755.5 / 13772.515625 [-0.12%]
Image differences :
No differences that require special attention
Memory differences :
No differences that require special attention
OCCT branch : [archived branch]
master SHA - [revision removed]
[revision removed]
Products branch : [archived branch] SHA - [revision removed]
was compiled on Linux, MacOS and Windows platforms and tested in optimize mode.
Number of compiler warnings:
No new/fixed warnings
Regressions/Differences/Improvements:
No regressions/differences
CPU differences:
Debian80-64:
OCCT
Total CPU difference: 17756.510000000126 / 18090.92999999998 [-1.85%]
Products
Total CPU difference: 12330.210000000125 / 12342.950000000128 [-0.10%]
Windows-64-VC14:
OCCT
Total CPU difference: 19429.09375 / 19751.71875 [-1.63%]
Products
Total CPU difference: 13755.5 / 13772.515625 [-0.12%]
Image differences :
No differences that require special attention
Memory differences :
No differences that require special attention
Branch [archived branch] has been deleted by Participant.
[revision removed]
[revision removed]
Related records