MantisBT
Mantis Bug Tracker Workflow

View Issue Details Jump to Notes ] Related Changesets ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0026447Community[OCCT] OCCT:Modeling Algorithmspublic2015-07-15 21:032015-10-23 20:50
ReporterAaron Michalk 
Assigned Tobugmaster 
PrioritynormalSeveritymajor 
StatusclosedResolutionfixed 
PlatformWindowsOSVC++ 2013OS Version64 bit
Product Version[OCCT] 6.9.0 
Target Version[OCCT] 6.9.1Fixed in Version[OCCT] 6.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? file icon script.tcl (256 bytes) 2015-07-16 13:01

- Relationships
related to 0026310closedbugmaster Very slow boolean cut operations on cylinders 

-  Notes
(0043091)
srlockley (reporter)
2015-07-16 08:55

This may be the same issue as report 0026310
(0043095)
msv (developer)
2015-07-16 09:38

Nikolay, please check if this issue is solved by 0026310.
(0043122)
nbv (developer)
2015-07-16 13:00

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.
(0043123)
nbv (developer)
2015-07-16 13:05

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.
(0043124)
nbv (developer)
2015-07-16 13:08
edited on: 2015-07-16 13:08

Fix for issue 0026310 is not called in described case.

(0043130)
msv (developer)
2015-07-16 14:33

Dear bugmaster, please close the bug and create a new test from the attached script.
(0043699)
git (administrator)
2015-07-30 13:08

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
(0044135)
git (administrator)
2015-08-14 10:52

Branch CR26447 has been deleted by inv.

SHA-1: 67d9ec262addd5d6ec8947bf1ca45876005a3e19

- Related Changesets
occt: master 3c1304bf
Timestamp: 2015-07-30 10:08:26
Author: apn
Committer: bugmaster
Details ] Diff ]
0026447: Performance degradation intersecting cylindrical surfaces

Added test case bugs/modalg_6/bug26447
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 View Revisions
2015-07-16 13:08 nbv Note Added: 0043124
2015-07-16 13:08 nbv Steps to Reproduce Updated View Revisions
2015-07-16 13:08 nbv Note Edited: 0043124 View Revisions
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 user533 Status verified => closed
2015-10-23 20:50 user533 Fixed in Version => 6.9.1


Copyright © 2000 - 2018 MantisBT Team
Powered by Mantis Bugtracker