View Issue Details

IDProjectCategoryView StatusLast Update
0028030Open CASCADEOCCT:Modeling Algorithmspublic2016-12-09 16:39
ReporterifvAssigned Toapn  
PrioritynormalSeverityminor 
Status closedResolutionfixed 
Product Version7.1.0 
Target Version7.1.0Fixed in Version7.1.0 
Summary0028030: Algorith GeomLib_CheckCurveOnSurface takes too much time for Bspline curves with big number of knots
DescriptionWhen 2d or 3d BSpline curve has many knots (~> 100) algorithm takes too much time to process them.
Steps To ReproduceProblem can be illustrated by following test:
beziercurve c 4 0 0 0 1 1 0 2 1 0 3 0 0
#
convert c1 c
set i 1
repeat 98 {insertknot c1 0.01*$i 1; incr i 1}
mkedge e1 c1
prism p1 e1 0 0 1
explode p1 e
dchrono cpu reset
dchrono cpu start
xdistef p1_3 p1
dchrono cpu stop
puts [dchrono cpu show]
set q1 [dchrono cpu show]
regexp {CPU user time: ([-0-9.+eE]+) seconds} ${q1} full t1
#
convert c2 c
set i 1
repeat 1000 {insertknot c2 0.00098*$i 1; incr i 1}
mkedge e2 c2
prism p2 e2 0 0 1
explode p2 e
dchrono cpu reset
dchrono cpu start
xdistef p2_3 p2
dchrono cpu stop
puts [dchrono cpu show]
set q2 [dchrono cpu show]
regexp {CPU user time: ([-0-9.+eE]+) seconds} ${q2} full t2
#
set max_ratio 5
if { ${t2} > ${max_ratio}*${t1} } {
    puts "Elapsed time is too much - Faulty"
} else {
    puts "Elapsed time is OK"
}
TagsNo tags attached.
Test case numberbugs modalg_6 bug28030

Activities

git

2016-10-31 17:11

administrator   ~0059645

Branch CR28030 has been created by ifv.

SHA-1: 7e85ecca324d709cf4a841daebcff88ec6b384cc


Detailed log of new commits:

Author: abv
Date: Wed Jun 10 08:40:09 2015 +0300

    0028030: Algorith GeomLib_CheckCurveOnSurface takes too much time for Bspline curves with big number of knots
    
    Checking of number of knots is added. If number of knots more then allowed value, algorithm does not search distance between curves for each knot interval, but uses predefined sample point distribution.
    
    This change was born in the scope of work on the issue 26329, but does not have direct connection to it. Therefore it has been postponed to be integrated later in its own context.

ifv

2016-10-31 17:15

developer   ~0059647

Branch CR28030 is ready for review and test.
Test script suggested for reproducing of problem is attached.

msv

2016-11-01 14:25

developer   ~0059691

Reviewed.
Please create the test from the suggested script and test the branch.

git

2016-11-03 14:19

administrator   ~0059851

Branch CR28030 has been updated by apv.

SHA-1: db9b960e796d746da61e97cfe4ef197b44e1eb86


Detailed log of new commits:

Author: apv
Date: Thu Nov 3 14:18:52 2016 +0300

    Test case for issue 0028030

apv

2016-11-03 14:43

tester   ~0059854

Dear BugMaster,

Branch CR28030 from occt git-repository (and master from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested.
SHA-1: 7e85ecca324d709cf4a841daebcff88ec6b384cc

Number of compiler warnings:
occt component:
   Linux: 0 (0 on master)
   Windows: 0 (0 on master)
   MasOS: 0 (0 on master)
products component:
   Linux: 63
   Windows: 0
   MacOS: 1150

Regressions/Differences:
Not detected

Testing cases:
bugs modalg_6 bug28030 - OK
http://occt-tests/CR28030-master-OCCT/Debian70-64/bugs/modalg_6/bug28030.html
http://occt-tests/CR28030-master-OCCT/Windows-64-VC10/bugs/modalg_6/bug28030.html

Testing on Linux:
Total MEMORY difference: 91181766 / 90749574 [+0.48%]
Total CPU difference: 19300.14999999975 / 19313.389999999898 [-0.07%]

Testing on Windows:
Total MEMORY difference: 57301075 / 57321116 [-0.03%]
Total CPU difference: 17875.624186598536 / 18220.18359529866 [-1.89%]

git

2016-12-07 11:30

administrator   ~0061257

Branch CR28030 has been deleted by kgv.

SHA-1: db9b960e796d746da61e97cfe4ef197b44e1eb86

Related Changesets

occt: master e841c38c

2016-11-07 13:38:53

ifv


Committer: apn Details Diff
0028030: Algorith GeomLib_CheckCurveOnSurface takes too much time for Bspline curves with big number of knots

Checking of number of knots is added. If number of knots more then allowed value, algorithm does not search distance between curves for each knot interval, but uses predefined sample point distribution.

This change was born in the scope of work on the issue 26329, but does not have direct connection to it. Therefore it has been postponed to be integrated later in its own context.

Test case for issue 0028030
Affected Issues
0028030
mod - src/GeomLib/GeomLib_CheckCurveOnSurface.cxx Diff File
add - tests/bugs/modalg_6/bug28030 Diff File

Issue History

Date Modified Username Field Change
2016-10-31 10:08 ifv New Issue
2016-10-31 10:08 ifv Assigned To => msv
2016-10-31 11:39 ifv Assigned To msv => ifv
2016-10-31 11:39 ifv Status new => assigned
2016-10-31 17:06 ifv Steps to Reproduce Updated
2016-10-31 17:11 git Note Added: 0059645
2016-10-31 17:15 ifv Note Added: 0059647
2016-10-31 17:15 ifv Assigned To ifv => msv
2016-10-31 17:15 ifv Status assigned => resolved
2016-11-01 14:25 msv Note Added: 0059691
2016-11-01 14:25 msv Assigned To msv => bugmaster
2016-11-01 14:25 msv Status resolved => reviewed
2016-11-01 16:30 apv Assigned To bugmaster => apv
2016-11-03 14:19 git Note Added: 0059851
2016-11-03 14:19 apv Test case number => bugs modalg_6 bug28030
2016-11-03 14:43 apv Note Added: 0059854
2016-11-03 14:43 apv Assigned To apv => bugmaster
2016-11-03 14:43 apv Status reviewed => tested
2016-11-03 17:31 msv Target Version 7.2.0 => 7.1.0
2016-11-09 17:43 apn Changeset attached => occt master e841c38c
2016-11-09 17:43 apn Assigned To bugmaster => apn
2016-11-09 17:43 apn Status tested => verified
2016-11-09 17:43 apn Resolution open => fixed
2016-12-07 11:30 git Note Added: 0061257
2016-12-09 16:30 aiv Status verified => closed
2016-12-09 16:39 aiv Fixed in Version => 7.1.0