View Issue Details

IDProjectCategoryView StatusLast Update
0024696Open CASCADEOCCT:Modeling Algorithmspublic2014-05-05 13:38
ReporteremvAssigned Tobugmaster  
PrioritynormalSeverityminor 
Status closedResolutionfixed 
Product Version6.7.0 
Target Version6.7.1Fixed in Version6.7.1 
Summary0024696: Lower performance of the new Edge/Edge intersection algorithm
DescriptionThe performance of the new Edge/Edge intersection algorithm is much lower (nearly 4.5 times) than the old one on the attached shape.
Steps To Reproducerestore cx_e1200_nurbs.brep cx
bclearobjects
bcleartools
set edges [explode cx e]
set nbe [llength $edges]
for {set i 1} {$i <= $nbe} {incr i} {baddobjects cx_$i}
bfillds
bbuild r
Additional information
and documentation updates
Performance improvements in IntTools_EdgeEdge algorithm:
1. Added check for common box between edges: if common box between edges is thin,
   find exact solutions at once, without looking for rough ranges first;
2. Improved methods IntTools_EdgeEdge::FindBestSolution() and
   IntTools_EdgeEdge::CheckCoincidence(...) by using method SplitRangeOnSegments
   with resolution of the curve as a criteria for size of the ranges.
TagsNo tags attached.
Test case numberbugs modalg_5(010) bug24696

Attached Files

  • cx_e1200_nurbs.brep (237,131 bytes)

Activities

emv

2014-03-07 11:43

developer  

cx_e1200_nurbs.brep (237,131 bytes)

emv

2014-03-14 14:32

developer   ~0028282

Git branch CR24696 is ready to be reviewed.

I've got the following results for this case in the different versions of OCCT:
OCCT 6.7.0 - 19.1553292 sec
OCCT dev - 95.4802441 sec
CR24696 - 9.65646190 sec

pkv

2014-03-14 15:00

developer   ~0028285

Reviewed.

mkv

2014-03-18 18:01

tester   ~0028328

Dear BugMaster,

Branch CR24696 (and products from GIT master) was compiled on Linux and Windows platforms and tested.
SHA-1: f4fc70e8c8cde762f1c24439b1eb996f2d3ceed0

Number of compiler warnings:

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

products component :
Linux: 12 (12 on master)
Windows: 2 (2 on master)

Regressions/Differences:
No regressions/differences

Testing cases:
http://occt-tests/CR24696-master-occt/Debian60-64/bugs/modalg_5/bug24696.html
http://occt-tests/CR24696-master-occt/Windows-32-VC9/bugs/modalg_5/bug24696.html
bugs modalg_5(010) bug24696: OK

Testing on Linux:
Total MEMORY difference: 386061188 / 386276008
Total CPU difference: 49036.470000000205 / 48827.5

Testing on Windows:
Total MEMORY difference: 430686336 / 430913404
Total CPU difference: 33607.25 / 35761.53125

There are not differences in images found by testdiff.

Related Changesets

occt: master 0d19eb34

2014-03-20 09:36:43

emv


Committer: bugmaster Details Diff
0024696: Lower performance of the new Edge/Edge intersection algorithm

Performance improvements in IntTools_EdgeEdge algorithm:
1. Added check for common box between edges: if common box between edges is thin,
find exact solutions at once, without looking for rough ranges first;
2. Improved methods IntTools_EdgeEdge::FindBestSolution() and
IntTools_EdgeEdge::CheckCoincidence(...) by using method SplitRangeOnSegments
with resolution of the curve as a criteria for size of the ranges.

Test cases for issue CR24696
Affected Issues
0024696
mod - src/IntTools/IntTools_EdgeEdge.cdl Diff File
mod - src/IntTools/IntTools_EdgeEdge.cxx Diff File
add - tests/bugs/modalg_5/bug24696 Diff File

Issue History

Date Modified Username Field Change
2014-03-07 11:43 emv New Issue
2014-03-07 11:43 emv Assigned To => emv
2014-03-07 11:43 emv File Added: cx_e1200_nurbs.brep
2014-03-07 11:43 emv Status new => assigned
2014-03-14 14:32 emv Note Added: 0028282
2014-03-14 14:32 emv Assigned To emv => pkv
2014-03-14 14:32 emv Status assigned => resolved
2014-03-14 14:32 emv Additional Information Updated
2014-03-14 15:00 pkv Note Added: 0028285
2014-03-14 15:00 pkv Assigned To pkv => mkv
2014-03-14 15:00 pkv Status resolved => reviewed
2014-03-18 18:01 mkv Note Added: 0028328
2014-03-18 18:01 mkv Test case number => bugs modalg_5(010) bug24696
2014-03-18 18:01 mkv Assigned To mkv => bugmaster
2014-03-18 18:01 mkv Status reviewed => tested
2014-03-21 16:18 bugmaster Changeset attached => occt master 0d19eb34
2014-03-21 16:18 bugmaster Status tested => verified
2014-03-21 16:18 bugmaster Resolution open => fixed
2014-03-24 12:37 abv Target Version => 6.7.1
2014-05-05 13:33 aiv Status verified => closed
2014-05-05 13:38 aiv Fixed in Version => 6.7.1