MantisBT - Open CASCADE
View Issue Details
0029502Open CASCADE[OCCT] OCCT:Modeling Algorithmspublic2018-02-13 16:052018-06-29 21:21
emv 
apn 
normalminor 
closedfixed 
[OCCT] 7.2.0 
[OCCT] 7.3.0[OCCT] 7.3.0 
bugs modalg_7 bug29502, perf modalg bug29502_1 bug29502_2 bug29502_3
0029502: Improve performance of the ShapeUpgrade_UnifySameDomain::UnifyEdges() method
The ShapeUpgrade_UnifySameDomain::UnifyEdges() performs builds the chains of connected edges for each face of the input shape, and in case when many faces are connected through the same chains of edges, these chains will be merged repeatedly for each face, at that the previous merging results will be overwritten.
It is necessary to avoid the repeated merging of the edges.

The problem has been detected while working on the issue #29481.
test bugs modalg_7 bug29502
test perf modalg bug29502_1
test perf modalg bug29502_2
test perf modalg bug29502_3
No tags attached.
Issue History
2018-02-13 16:05emvNew Issue
2018-02-13 16:05emvAssigned To => msv
2018-02-13 16:05emvAssigned Tomsv => emv
2018-02-13 16:05emvStatusnew => assigned
2018-02-13 16:49gitNote Added: 0073962
2018-02-13 16:52emvNote Added: 0073963
2018-02-13 16:52emvNote Edited: 0073963bug_revision_view_page.php?bugnote_id=73963#r18604
2018-02-14 08:08emvNote Added: 0073972
2018-02-14 08:08emvAssigned Toemv => msv
2018-02-14 08:08emvStatusassigned => resolved
2018-02-14 08:08emvSteps to Reproduce Updatedbug_revision_view_page.php?rev_id=18610#r18610
2018-02-14 11:43msvNote Added: 0073980
2018-02-14 11:44msvAssigned Tomsv => emv
2018-02-14 11:44msvStatusresolved => assigned
2018-02-14 13:48gitNote Added: 0073981
2018-02-14 13:59emvNote Added: 0073982
2018-02-14 13:59emvAssigned Toemv => msv
2018-02-14 13:59emvStatusassigned => resolved
2018-02-14 15:06msvNote Added: 0073984
2018-02-14 15:06msvAssigned Tomsv => bugmaster
2018-02-14 15:06msvStatusresolved => reviewed
2018-02-14 15:07emvRelationship addedrelated to 0029481
2018-02-14 15:08emvDescription Updatedbug_revision_view_page.php?rev_id=18622#r18622
2018-02-14 16:00apnTest case number => bugs modalg_7 bug29502, perf modalg bug29502_1 bug29502_2 bug29502_3
2018-02-14 16:00apnNote Added: 0073985
2018-02-14 16:00apnStatusreviewed => tested
2018-02-18 13:00apnChangeset attached => occt master 12d71ad6
2018-02-18 13:00apnAssigned Tobugmaster => apn
2018-02-18 13:00apnStatustested => verified
2018-02-18 13:00apnResolutionopen => fixed
2018-02-20 12:58aivTarget Version7.4.0 => 7.3.0
2018-03-06 15:50gitNote Added: 0074288
2018-06-29 21:16aivFixed in Version => 7.3.0
2018-06-29 21:21aivStatusverified => closed

Notes
(0073962)
git   
2018-02-13 16:49   
Branch CR29502 has been created by emv.

SHA-1: b033f9388fb929dc6d997b44cf2d8c517bf51614


Detailed log of new commits:

Author: emv
Date: Tue Feb 13 15:01:39 2018 +0300

    0029502: Improve performance of the ShapeUpgrade_UnifySameDomain::UnifyEdges() method
    
    Avoid repeated merging of the same chains of edges by processing all edges at once.
    
    Test cases for the issue.
(0073963)
emv   
2018-02-13 16:52   
Performance tests:
test perf modalg bug29502_1
# fix: 0.11
# master: 2.39

test perf modalg bug29502_2
# fix: 0.23
# master: 2.39

test perf modalg bug29502_3
# fix: 1.76
# master: 3.73


The patch allows not only improving performance, but also unify split seam edge on the face:
test bugs modalg_7 bug29502


(0073972)
emv   
2018-02-14 08:08   
Dear Mikhail, could you please review the git branch CR29502?
Jenkins job - http://jenkins-test-10.nnov.opencascade.com/view/CR29502-master-emv/view/COMPARE/. [^]
(0073980)
msv   
2018-02-14 11:43   
tests/bugs/modalg_7/bug29502
- Add comment about what is expected from unify.

src/ShapeUpgrade/ShapeUpgrade_UnifySameDomain.cxx
- 1659: anEdgesMap is not used.
(0073981)
git   
2018-02-14 13:48   
Branch CR29502 has been updated by emv.

SHA-1: 71a34172c34bf9461a30b84a484943db7b60006f


Detailed log of new commits:

Author: emv
Date: Wed Feb 14 13:47:59 2018 +0300

    # Considering remarks.

(0073982)
emv   
2018-02-14 13:59   
Remarks have been considered. Please review.
No need to retest all tests (I have retested only the modified test case).
(0073984)
msv   
2018-02-14 15:06   
Reviewed.
(0073985)
apn   
2018-02-14 16:00   
Combination -
OCCT branch : CR29502 SHA - b033f9388fb929dc6d997b44cf2d8c517bf51614
Products branch : master SHA - 41720ba4c544483d56753d7b5ec17b6a72bfac64
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

Test cases:
test bugs modalg_7 bug29502 - OK
test perf modalg bug29502_1 bug29502_2 bug29502_3 - OK

CPU differences:
Debian70-64:
OCCT
Total CPU difference: 18256.14999999974 / 18375.13999999976 [-0.65%]
Products
Total CPU difference: 7449.77000000002 / 7504.959999999995 [-0.74%]
Windows-64-VC10:
OCCT
Total CPU difference: 17717.657573998516 / 17692.572613198507 [+0.14%]
Products
Total CPU difference: 8013.880570699977 / 8097.855908999923 [-1.04%]

Image differences :
No differences that require special attention

Memory differences :
No differences that require special attention
(0074288)
git   
2018-03-06 15:50   
Branch CR29502 has been deleted by kgv.

SHA-1: 71a34172c34bf9461a30b84a484943db7b60006f