MantisBT
Mantis Bug Tracker Workflow

View Issue Details Jump to Notes ] Related Changesets ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0028404Open CASCADE[OCCT] OCCT:DRAWpublic2017-01-29 23:032017-09-29 16:24
Reporterabv 
Assigned Toapn 
PrioritynormalSeverityminor 
StatusclosedResolutionfixed 
PlatformOSOS Version
Product Version 
Target Version[OCCT] 7.2.0Fixed in Version[OCCT] 7.2.0 
Summary0028404: DRAW - avoid useless preparation of display data when shape is not shown
DescriptionExecution of complex scripts is often quite slow in DRAW due to overhead expenses occurring when shape is set as DRAW variable. This includes display of the shape in DRAW views, and some pre-processing that is required for that.

The first problem is that constructor of the class DBRep_DrawableShape performs pre-processing of shape data and prepares some display structures even if there are no views opened, or the shape is not shown. This overhead cannot be avoided.

For instance, execution of attached script creating deep nested compound from single box (~ 93 K instances) runs in ~ 400 sec on current master, and all this time is taken by updating those useless structures.

Another problem is that when one or more DRAW view(s) are opened, by default every new shape gets displayed automatically. This takes time but may be not always needed. Note that there is a DRAW command "autodisplay" that allows to switch this behavior off or on. It should be used to avoid automatic display of shapes created by scripts.
Steps To Reproducetest perf draw bug28404
TagsNo tags attached.
Test case numberperf draw bug28404
Attached Files? file icon deepcompound.tcl (863 bytes) 2017-01-29 23:03

- Relationships

-  Notes
(0063166)
git (administrator)
2017-01-29 23:24

Branch CR28404 has been created by abv.

SHA-1: 4f6c429ad697d4669d228134befabcbec5c201aa


Detailed log of new commits:

Author: abv
Date: Sun Jan 29 23:23:49 2017 +0300

    0028404: DRAW is slow
    
    Class DBRep_DrawableShape is changed to postpone generation of display data until the shape is actually displayed (for the first time).
    
    Test perf draw bug28404 is added.
(0063169)
git (administrator)
2017-01-30 07:56

Branch CR28404 has been updated forcibly by abv.

SHA-1: 11fbd849b86949acbcbaa66a8c35f729f41177e2
(0063170)
abv (manager)
2017-01-30 07:57

Fix is pushed to CR28404, please review
(0063226)
apn (administrator)
2017-01-30 20:23

There are no remarks.
(0063355)
mkv (tester)
2017-02-02 13:11

Dear BugMaster,
Branch CR28404 from occt git-repository (and master from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested on Release mode.
SHA-1: 11fbd849b86949acbcbaa66a8c35f729f41177e2

Number of compiler warnings:

occt component :
Linux: 0 (0 on master)
Windows: 0 (0 on master)
MacOS : 0 (0 on master)

products component :
Linux: 63 (63 on master)
Windows: 0 (0 on master)
MacOS : 1141

Regressions/Differences/Improvements:
No regressions/differences

Testing cases:
http://occt-tests/CR28404-master-OCCT/Debian70-64/perf/draw/bug28404.html [^]
http://occt-tests/CR28404-master-OCCT/Windows-64-VC10/perf/draw/bug28404.html [^]
perf draw bug28404: OK

Testing on Linux:
occt component :
Total MEMORY difference: 91818142 / 92310743 [-0.53%]
Total CPU difference: 19764.46000000039 / 19914.260000000217 [-0.75%]
products component :
Total MEMORY difference: 30867730 / 31477908 [-1.94%]
Total CPU difference: 5517.409999999976 / 5544.959999999981 [-0.50%]

Testing on Windows:
occt component :
Total MEMORY difference: 57087473 / 57618048 [-0.92%]
Total CPU difference: 18200.97987219849 / 18683.178963198647 [-2.58%]
products component :
Total MEMORY difference: 22203455 / 22621210 [-1.85%]
Total CPU difference: 5539.829511499975 / 5570.546108399986 [-0.55%]

There are no differences in images found by testdiff.
(0063356)
mkv (tester)
2017-02-02 13:11

Dear BugMaster,
Branch CR28404 is TESTED.
(0063633)
git (administrator)
2017-02-08 11:36

Branch CR28404 has been deleted by kgv.

SHA-1: 11fbd849b86949acbcbaa66a8c35f729f41177e2

- Related Changesets
occt: master 6662fe63
Timestamp: 2017-01-29 20:23:49
Author: abv
Committer: apn
Details ] Diff ]
0028404: DRAW - avoid useless preparation of display data when shape is not shown

Class DBRep_DrawableShape is changed to postpone generation of display data until the shape is actually displayed (for the first time).

Test perf draw bug28404 is added.
mod - src/DBRep/DBRep_DrawableShape.cxx Diff ] File ]
mod - src/DBRep/DBRep_DrawableShape.hxx Diff ] File ]
add - tests/perf/draw/bug28404 Diff ] File ]
mod - tests/perf/grids.list Diff ] File ]

- Issue History
Date Modified Username Field Change
2017-01-29 23:03 abv New Issue
2017-01-29 23:03 abv Assigned To => apn
2017-01-29 23:03 abv File Added: deepcompound.tcl
2017-01-29 23:17 abv Description Updated View Revisions
2017-01-29 23:24 git Note Added: 0063166
2017-01-29 23:25 abv Description Updated View Revisions
2017-01-30 07:21 abv Summary DRAW is slow => DRAW - avoid useless preparation of display data when shape is not shown
2017-01-30 07:21 abv Description Updated View Revisions
2017-01-30 07:56 git Note Added: 0063169
2017-01-30 07:57 abv Note Added: 0063170
2017-01-30 07:57 abv Status new => resolved
2017-01-30 07:57 abv Steps to Reproduce Updated View Revisions
2017-01-30 20:23 apn Note Added: 0063226
2017-01-30 20:23 apn Test case number => perf draw bug28404
2017-01-30 20:23 apn Assigned To apn => bugmaster
2017-01-30 20:23 apn Status resolved => reviewed
2017-01-31 11:45 mkv Assigned To bugmaster => mkv
2017-02-02 13:11 mkv Note Added: 0063355
2017-02-02 13:11 mkv Note Added: 0063356
2017-02-02 13:11 mkv Assigned To mkv => bugmaster
2017-02-02 13:11 mkv Status reviewed => tested
2017-02-03 16:52 apn Changeset attached => occt master 6662fe63
2017-02-03 16:52 apn Assigned To bugmaster => apn
2017-02-03 16:52 apn Status tested => verified
2017-02-03 16:52 apn Resolution open => fixed
2017-02-08 11:36 git Note Added: 0063633
2017-09-29 16:21 user533 Fixed in Version => 7.2.0
2017-09-29 16:24 user533 Status verified => closed


Copyright © 2000 - 2018 MantisBT Team
Powered by Mantis Bugtracker