DiscussionsIssue archiveOCCT:Modeling Algorithms

Archived issue #0029502

Improve performance of the ShapeUpgrade_UnifySameDomain::UnifyEdges() method

Open CASCADEOCCT:Modeling Algorithmsclosed9 public notes

Search issues

Description

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.

Steps to reproduce

test bugs modalg_7 bug29502
test perf modalg bug29502_1
test perf modalg bug29502_2
test perf modalg bug29502_3

Public activity

9 archived notes

Participants are labeled by their role within this record.

01Commenter 2
Branch [archived branch] has been created by Author.

[revision removed]


Detailed log of new commits:

Author: Author
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.
02Commenter 2
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


03Commenter 3
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/.
04Commenter 4
tests/bugs/modalg_7/bug29502
- Add comment about what is expected from unify.

src/ShapeUpgrade/ShapeUpgrade_UnifySameDomain.cxx
- 1659: anEdgesMap is not used.
05Commenter 2
Branch [archived branch] has been updated by Author.

[revision removed]


Detailed log of new commits:

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

    # Considering remarks.

06Commenter 6
Remarks have been considered. Please review.
No need to retest all tests (I have retested only the modified test case).
07Commenter 7
Reviewed.
08Commenter 1
Combination -
OCCT branch : [archived branch] SHA - [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

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
09Commenter 2
Branch [archived branch] has been deleted by Participant.

[revision removed]