Archived issue #0026447
Performance degradation intersecting cylindrical surfaces
Description
Calling IntTools_FaceFace::Perform is significantly slower for two cylindrical surfaces.
Steps to reproduce
Dear testers,
Test for this issue must be bused on Attachment 1 (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.
Test for this issue must be bused on Attachment 1 (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
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
IntTools_FaceFace::Perform
IntTools_FaceFace::ComputeTolReached3d
IntTools_FaceFace::ComputeTolerance
IntTools_Tools::ComputeTolerance
Public activity
8 archived notes
Participants are labeled by their role within this record.
This may be the same issue as report #0026310
Nikolay, please check if this issue is solved by #0026310.
Dear Participant,
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.
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.
Dear Mikhail,
The problem is not reproduced on the current master (see #0026447).
Please close this bug with creation corresponding test case.
The problem is not reproduced on the current master (see #0026447).
Please close this bug with creation corresponding test case.
Dear Commenter 1, please close the bug and create a new test from the attached script.
Branch [archived branch] has been created by Commenter 4.
[revision removed]
Detailed log of new commits:
Author: Commenter 4
Date: Thu Jul 30 13:08:26 2015 +0300
0026447: Performance degradation intersecting cylindrical surfaces
Added test case bugs/modalg_6/bug26447
[revision removed]
Detailed log of new commits:
Author: Commenter 4
Date: Thu Jul 30 13:08:26 2015 +0300
0026447: Performance degradation intersecting cylindrical surfaces
Added test case bugs/modalg_6/bug26447
Branch [archived branch] has been deleted by Participant.
[revision removed]
[revision removed]
Related records