View Issue Details

IDProjectCategoryView StatusLast Update
0026447CommunityOCCT:Modeling Algorithmspublic2015-10-23 20:50
ReporterAaron Michalk Assigned Tobugmaster  
PrioritynormalSeveritymajor 
Status closedResolutionfixed 
PlatformWindowsOSVC++ 2013 
Product Version6.9.0 
Target Version6.9.1Fixed in Version6.9.1 
Summary0026447: Performance degradation intersecting cylindrical surfaces
DescriptionCalling IntTools_FaceFace::Perform is significantly slower for two cylindrical surfaces.
Steps To ReproduceDear testers,

Test for this issue must be bused on script.tcl attached file.

--------------------------------------------------
In Draw Test Harness:

cylinder c1 0 0 0 1 0 0 0 -1 0 100
cylinder c2 0 0 0 0 1 0 1 0 0 100
mkface f1 c1
mkface f2 c2
chrono
bopcurves f1 f2
bopcurves f1 f2
bopcurves f1 f2
chrono

In 6.8.0 I get:

Elapsed time: 0 Hours 0 Minutes 0.00378219620325 Seconds
Elapsed time: 0 Hours 0 Minutes 0.0032868583221 Seconds
Elapsed time: 0 Hours 0 Minutes 0.00376046291785 Seconds

In 6.9.0 I get:

Elapsed time: 0 Hours 0 Minutes 0.00707720447099 Seconds
Elapsed time: 0 Hours 0 Minutes 0.00690213072812 Seconds
Elapsed time: 0 Hours 0 Minutes 0.00707146932837 Seconds

Realize that the these commands have a base overhead of around 0.002 so the slowdown is 5x. Calling this operation hundreds of times becomes a problem for us.
Additional information
and documentation updates
It appears that the changes to IntTools_FaceFace::ComputeTolReached3d between 6.8.0 and 6.9.0 caused this. The bottleneck is in the following call stack:

IntTools_FaceFace::Perform
IntTools_FaceFace::ComputeTolReached3d
IntTools_FaceFace::ComputeTolerance
IntTools_Tools::ComputeTolerance
TagsNo tags attached.
Test case numberbugs modalg_6 bug26447

Attached Files

  • script.tcl (256 bytes)

Relationships

related to 0026310 closedbugmaster Very slow boolean cut operations on cylinders 

Activities

srlockley

2015-07-16 08:55

reporter   ~0043091

This may be the same issue as report 0026310

msv

2015-07-16 09:38

developer   ~0043095

Nikolay, please check if this issue is solved by 0026310.

nbv

2015-07-16 13:00

developer   ~0043122

Dear Aaron Michalk,

I have following result on my machine (script is attached).

In 6.8.0:
Elapsed time: 0 Hours 0 Minutes 0.170721537717 Seconds
CPU user time: 0.1716011 seconds
CPU system time: 0 seconds

In 7.0.0 dev
Elapsed time: 0 Hours 0 Minutes 0.170156746393 Seconds
CPU user time: 0.1716011 seconds
CPU system time: 0 seconds

The greatest time is spend on solrst.Perform(...) function, which is called from IntPatch_ImpImpIntersection::Perform(...) (it looks for intersection line on surface boundaries).

P.S.

Algorithm of IntTools_Tools::ComputeTolerance() was improved and sped up in the frame of bug #25613.

nbv

2015-07-16 13:01

developer  

script.tcl (256 bytes)

nbv

2015-07-16 13:05

developer   ~0043123

Dear Mikhail,

The problem is not reproduced on the current master (see http://tracker.dev.opencascade.org/view.php?id=26447#c43122).

Please close this bug with creation corresponding test case.

nbv

2015-07-16 13:08

developer   ~0043124

Last edited: 2015-07-16 13:08

Fix for issue 0026310 is not called in described case.

msv

2015-07-16 14:33

developer   ~0043130

Dear bugmaster, please close the bug and create a new test from the attached script.

git

2015-07-30 13:08

administrator   ~0043699

Branch CR26447 has been created by apn.

SHA-1: 67d9ec262addd5d6ec8947bf1ca45876005a3e19


Detailed log of new commits:

Author: apn
Date: Thu Jul 30 13:08:26 2015 +0300

    0026447: Performance degradation intersecting cylindrical surfaces
    
    Added test case bugs/modalg_6/bug26447

git

2015-08-14 10:52

administrator   ~0044135

Branch CR26447 has been deleted by inv.

SHA-1: 67d9ec262addd5d6ec8947bf1ca45876005a3e19

Related Changesets

occt: master 3c1304bf

2015-07-30 10:08:26

apn


Committer: bugmaster Details Diff
0026447: Performance degradation intersecting cylindrical surfaces

Added test case bugs/modalg_6/bug26447
Affected Issues
0026447
add - tests/bugs/modalg_6/bug26447 Diff File

Issue History

Date Modified Username Field Change
2015-07-15 21:03 Aaron Michalk New Issue
2015-07-15 21:03 Aaron Michalk Assigned To => msv
2015-07-16 08:55 srlockley Note Added: 0043091
2015-07-16 09:37 msv Relationship added related to 0026310
2015-07-16 09:38 msv Note Added: 0043095
2015-07-16 09:38 msv Assigned To msv => nbv
2015-07-16 09:38 msv Status new => assigned
2015-07-16 13:00 nbv Note Added: 0043122
2015-07-16 13:01 nbv File Added: script.tcl
2015-07-16 13:05 nbv Note Added: 0043123
2015-07-16 13:05 nbv Assigned To nbv => msv
2015-07-16 13:05 nbv Status assigned => resolved
2015-07-16 13:05 nbv Steps to Reproduce Updated
2015-07-16 13:08 nbv Note Added: 0043124
2015-07-16 13:08 nbv Steps to Reproduce Updated
2015-07-16 13:08 nbv Note Edited: 0043124
2015-07-16 14:33 msv Note Added: 0043130
2015-07-16 14:33 msv Assigned To msv => bugmaster
2015-07-16 14:33 msv Status resolved => reviewed
2015-07-16 14:33 msv Resolution open => unable to reproduce
2015-07-28 17:00 bugmaster Assigned To bugmaster => apn
2015-07-30 13:08 git Note Added: 0043699
2015-07-30 13:09 apn Test case number => bugs modalg_6 bug26447
2015-07-30 13:09 apn Assigned To apn => bugmaster
2015-07-30 13:09 apn Status reviewed => tested
2015-07-30 13:09 apn Target Version => 7.0.0
2015-07-31 12:31 bugmaster Changeset attached => occt master 3c1304bf
2015-07-31 12:31 bugmaster Status tested => verified
2015-07-31 12:31 bugmaster Resolution unable to reproduce => fixed
2015-08-14 10:52 git Note Added: 0044135
2015-08-26 11:00 abv Target Version 7.0.0 => 6.9.1
2015-10-16 14:56 aiv Status verified => closed
2015-10-23 20:50 aiv Fixed in Version => 6.9.1