View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0030435 | Open CASCADE | OCCT:Modeling Algorithms | public | 2019-01-10 13:05 | 2019-04-27 13:08 |
Reporter | Assigned To | ||||
Priority | normal | Severity | minor | ||
Status | closed | Resolution | fixed | ||
Product Version | 7.4.0 | ||||
Target Version | 7.4.0 | Fixed in Version | 7.4.0 | ||
Summary | 0030435: Improving performance of Approx_ComputeCLine | ||||
Description | Algorithm, implemented in Approx_ComputeCLine (approximation of continuous parametric function) is wide used in projection algorithm. | ||||
Steps To Reproduce | test perf moddata bug30435 | ||||
Tags | No tags attached. | ||||
Test case number | perf/moddata/bug30435 | ||||
|
Branch CR30435 has been created by ifv. SHA-1: 995e77f66621cd2f9e3370ba9d59bff9f1ab5302 Detailed log of new commits: Author: ifv Date: Thu Jan 10 13:07:01 2019 +0300 0030435: Improving performance of Approx_ComputeCLine |
|
Branch CR30435 has been updated by ifv. SHA-1: 027e964478c09a312c5942eb06bb3e500c459ec9 Detailed log of new commits: Author: ifv Date: Fri Jan 11 15:20:17 2019 +0300 Fix regression 1 |
|
Branch CR30435 has been updated forcibly by ifv. SHA-1: 886844df71a7c4b3920fbd46520917aae331b4e4 |
|
Branch CR30435 has been updated by ifv. SHA-1: 00494f92e2ea7a98370de5f6c580abae58eccc15 Detailed log of new commits: Author: ifv Date: Fri Jan 18 16:14:56 2019 +0300 Fix for performance problems (boolean volumemaker E4, E5, E6) |
|
Branch CR30435 has been updated by ifv. SHA-1: adb7a48a2e5b314c383f3ec7d0aedb94d9b36acd Detailed log of new commits: Author: ifv Date: Mon Jan 21 16:17:08 2019 +0300 Fix for boolean volumemaker E6 Author: ifv Date: Mon Jan 21 09:36:18 2019 +0300 Revert "Fix for performance problems (boolean volumemaker E4, E5, E6)" This reverts commit 00494f92e2ea7a98370de5f6c580abae58eccc15. |
|
Branch CR30435 has been updated by ifv. SHA-1: aa63e31beb706d6a860bbe8776bbee4c091ced70 Detailed log of new commits: Author: ifv Date: Fri Jan 25 16:32:58 2019 +0300 Fix some bugs |
|
Branch CR30435 has been updated forcibly by ifv. SHA-1: 1c9b639ff29a80171ffbf33b2d2d020b4c2d8b51 |
|
Branch CR30435 has been updated forcibly by ifv. SHA-1: 83cd458533ce0b45ee24dc5586c60c2aa25e6188 |
|
Branch CR30435 has been updated forcibly by ifv. SHA-1: c7e3522a5d38505f71227db84a1bee0b2f9700c5 |
|
Branch CR300435 is ready for review See CR30435-master-IFV for test results |
|
src/Approx/Approx_ComputeCLine.gxx - 414: incorrect comment - 312: it seems must be "deg == mydegremin" src/Approx/Approx_FitAndDivide.hxx - 67: Actually myInvOrder is true by default, it is worth to tell it here. src/IntTools/IntTools_EdgeEdge.cxx - 228: please add comment for this code (copy from commit). tests/perf/moddata/bug30435 - Put bug title along with its number. tests/lowalgos/intss/bug27263 - Add check of length of the second curve. What is the performance gain of this fix. Can you give some figures? |
|
Branch CR30435 has been updated forcibly by ifv. SHA-1: c88524a3c114f34c196f4b4e843f722a5ef47269 |
|
Branch CR30435 has been updated forcibly by ifv. SHA-1: a12d40a5d15023fc4085fad1e8d9e1620d46c514 |
|
Branch CR30435 has been deleted by ifv. SHA-1: a12d40a5d15023fc4085fad1e8d9e1620d46c514 |
|
Branch CR30435 has been created by ifv. SHA-1: de9574633fe91ada6dfa35fea248123bc87b4c2a Detailed log of new commits: Author: ifv Date: Thu Jan 10 13:07:01 2019 +0300 0030435: Improving performance of Approx_ComputeCLine 1. Approx_ComputeCLine.gxx, Approx_FitAndDivide.hxx, Approx_FitAndDivide2d.hxx, BRepFill_ComputeCLine.hxx It is base modification, which allows improve performance of approximation with help of Approx_ComputeCLine. 2. ProjLib_ComputeApprox, ProjLib_ComputeApproxOnPolarSurface, ProjLib_ComputeApproxOnPolarSurface, ProjLib_ProjectOnPlane It is additional modification of methods using Approx_ComputeCLine. 3. BRepCheck_Face Small improvement of method Intersect(...), which intersects two wires on face. 4. BRepTopAdaptor_FClass2d Impovement of treatment infinitely narrow faces. 5. ChFi3d/ChFi3d_Builder_6.cxx Small improvement, which forbids extension of singular boundary of surface. It was TODO problem in tests/bugs/modalg_7/bug27711_3 6. IntTools_EdgeEdge.cxx Improvement of performance for cases of searching common parts between line and analytical curve 7. GeomliteTest_CurveCommands.cxx Adding Draw command fitcurve. This command is analog of approxcurve, but uses Approx_FitAndDivide algorithm. Mainly to have direct draw command for testing Approx_ComputeCLine. 8. Extrema_ExtElC.cxx Treatment of case "infinite solutions" for extrema line-ellipse 9. Modification of some tests according to new behavior of algorithm. 10. tests/perf/moddata/bug30435 Test for new improved algorithm. 11. Implementation QAcommand OCC40435 in QABugs_20.cxx used in test bug30435 |
|
Branch CR30435 has been updated forcibly by ifv. SHA-1: 28d87c06bc7eadface8d9d3fe5de25b602b644df |
|
CR30435 is ready for review. Results is CR30435-master-IFV Improving: there are 14 tests with improving performance > then 50% (see CPU difference) According to test perf moddata bug30435 improving of performance is 3.86 times for Win 4.375 for Lin |
|
Commit message: >1. Approx_ComputeCLine.gxx, Approx_FitAndDivide.hxx, Approx_FitAndDivide2d.hxx, BRepFill_ComputeCLine.hxx >It is base modification, which allows improve performance of approximation with help of Approx_ComputeCLine. It is needed to point the main idea of changes. >2. ProjLib_ComputeApprox, ProjLib_ComputeApproxOnPolarSurface, ProjLib_ComputeApproxOnPolarSurface, ProjLib_ProjectOnPlane >It is additional modification of methods using Approx_ComputeCLine. It is needed to point the main idea of changes. >11. Implementation QAcommand OCC40435 in QABugs_20.cxx used in test bug30435 Misprint OCC40435. src/Approx/Approx_FitAndDivide.hxx and others: - Make description of SetInvOrder the same in all headers. - Please describe which value of InvOrder is used by default. src/Extrema/Extrema_ExtElC.cxx - replace tabs with spaces in the added code. src/IntTools/IntTools_EdgeEdge.cxx - replace tabs with spaces in the added code. tests/perf/moddata/bug30435 - Give the second counter unique name like OCC30435_1. Why the following test showed worse performance (both Windows and Linux)? CPU ifc doc_1 B4: 2102.78125 / 830.6875 [+153.14%] |
|
Branch CR30435 has been updated forcibly by ifv. SHA-1: 1eec944a238d99679e7a388a203e34c15624d6c4 |
|
CR30435 is ready for review |
|
Branch CR30435 has been updated forcibly by ifv. SHA-1: ba7f665dce92eb21ac0031497558d14de17fa4d3 |
|
CR30435 is updated according to remarks |
|
Reviewed. |
|
Combination - OCCT branch : CR30435 master SHA - ba7f665dce92eb21ac0031497558d14de17fa4d3 d67d4b811012eef8913d3c535c29654d0acf3c4c Products branch : master SHA - 8518fc0ce61f27cb5fd038357f978ec6e3a20df5 was compiled on Linux, MacOS and Windows platforms and tested in optimize mode. Number of compiler warnings: No new/fixed warnings Regressions/Differences/Improvements: No regressions/differences CPU differences: Debian80-64: OCCT Total CPU difference: 16328.27999999997 / 16536.609999999906 [-1.26%] Products Total CPU difference: 10520.86000000006 / 10546.95000000005 [-0.25%] Windows-64-VC14: OCCT Total CPU difference: 17662.578125 / 17960.6875 [-1.66%] Products Total CPU difference: 12066.265625 / 12065.3125 [+0.01%] Image differences : No differences that require special attention Memory differences : No differences that require special attention |
|
Branch CR30435 has been deleted by inv. SHA-1: ba7f665dce92eb21ac0031497558d14de17fa4d3 |
occt: master ba7f665d 2019-01-10 10:07:01
|
0030435: Improving performance of Approx_ComputeCLine 1. Approx_ComputeCLine.gxx, Approx_FitAndDivide.hxx, Approx_FitAndDivide2d.hxx, BRepFill_ComputeCLine.hxx It is base modification, which allows improve performance of approximation with help of Approx_ComputeCLine. The main idea of improvement is using degree selection by inverse order - from maxdegree to mindegree. If tolerance for maxdegree is not reached, there is no sense to make approximation for current number of knots with lower degree, it is necessary to cut parametric interval. 2. ProjLib_ComputeApprox, ProjLib_ComputeApproxOnPolarSurface, ProjLib_ComputeApproxOnPolarSurface, ProjLib_ProjectOnPlane It is additional modification of methods using Approx_ComputeCLine. Mainly, modifications concern to more optimal choosing parameters for approximation algorithm. 3. BRepCheck_Face Small improvement of method Intersect(...), which intersects two wires on face. 4. BRepTopAdaptor_FClass2d Impovement of treatment infinitely narrow faces. 5. ChFi3d/ChFi3d_Builder_6.cxx Small improvement, which forbids extension of singular boundary of surface. It was TODO problem in tests/bugs/modalg_7/bug27711_3 6. IntTools_EdgeEdge.cxx Improvement of performance for cases of searching common parts between line and analytical curve 7. GeomliteTest_CurveCommands.cxx Adding Draw command fitcurve. This command is analog of approxcurve, but uses Approx_FitAndDivide algorithm. Mainly to have direct draw command for testing Approx_ComputeCLine. 8. Extrema_ExtElC.cxx Treatment of case "infinite solutions" for extrema line-ellipse 9. Modification of some tests according to new behavior of algorithm. 10. tests/perf/moddata/bug30435 Test for new improved algorithm. 11. Implementation QAcommand OCC30435 in QABugs_20.cxx used in test bug30435 |
Affected Issues 0030435 |
|
mod - src/Approx/Approx_ComputeCLine.gxx | Diff File | ||
mod - src/Approx/Approx_FitAndDivide.hxx | Diff File | ||
mod - src/Approx/Approx_FitAndDivide2d.hxx | Diff File | ||
mod - src/BRepCheck/BRepCheck_Face.cxx | Diff File | ||
mod - src/BRepFill/BRepFill_ComputeCLine.hxx | Diff File | ||
mod - src/BRepTopAdaptor/BRepTopAdaptor_FClass2d.cxx | Diff File | ||
mod - src/ChFi3d/ChFi3d_Builder_6.cxx | Diff File | ||
mod - src/Extrema/Extrema_ExtElC.cxx | Diff File | ||
mod - src/GeomliteTest/GeomliteTest_CurveCommands.cxx | Diff File | ||
mod - src/IntTools/IntTools_EdgeEdge.cxx | Diff File | ||
mod - src/ProjLib/ProjLib_ComputeApprox.cxx | Diff File | ||
mod - src/ProjLib/ProjLib_ComputeApproxOnPolarSurface.cxx | Diff File | ||
mod - src/ProjLib/ProjLib_ComputeApproxOnPolarSurface.hxx | Diff File | ||
mod - src/ProjLib/ProjLib_ProjectOnPlane.cxx | Diff File | ||
mod - src/QABugs/QABugs_20.cxx | Diff File | ||
mod - tests/bugs/mesh/bug30008_2 | Diff File | ||
mod - tests/bugs/modalg_7/bug27711_3 | Diff File | ||
mod - tests/de/step_4/D9 | Diff File | ||
mod - tests/de/step_4/E1 | Diff File | ||
mod - tests/lowalgos/intss/bug27263 | Diff File | ||
add - tests/perf/moddata/bug30435 | Diff File |
Date Modified | Username | Field | Change |
---|---|---|---|
2019-01-10 13:05 |
|
New Issue | |
2019-01-10 13:05 |
|
Assigned To | => ifv |
2019-01-10 13:06 |
|
Relationship added | related to 0027651 |
2019-01-10 13:07 |
|
Status | new => assigned |
2019-01-10 13:11 | git | Note Added: 0081712 | |
2019-01-11 15:24 | git | Note Added: 0081754 | |
2019-01-15 16:48 | git | Note Added: 0081786 | |
2019-01-18 16:21 | git | Note Added: 0081818 | |
2019-01-21 16:22 | git | Note Added: 0081852 | |
2019-01-25 16:39 | git | Note Added: 0081882 | |
2019-01-28 11:58 | git | Note Added: 0081904 | |
2019-01-29 17:41 | git | Note Added: 0081919 | |
2019-02-05 15:23 | git | Note Added: 0082037 | |
2019-02-05 17:38 |
|
Note Added: 0082038 | |
2019-02-05 17:38 |
|
Assigned To | ifv => msv |
2019-02-05 17:38 |
|
Status | assigned => resolved |
2019-02-05 17:38 |
|
Steps to Reproduce Updated | |
2019-02-08 16:44 |
|
Relationship added | related to 0027711 |
2019-02-08 16:57 |
|
Note Added: 0082092 | |
2019-02-08 16:57 |
|
Assigned To | msv => ifv |
2019-02-08 16:57 |
|
Status | resolved => assigned |
2019-02-15 16:31 | git | Note Added: 0082199 | |
2019-03-05 17:02 | git | Note Added: 0082697 | |
2019-04-02 12:19 | git | Note Added: 0083356 | |
2019-04-05 17:14 | git | Note Added: 0083441 | |
2019-04-08 11:37 | git | Note Added: 0083476 | |
2019-04-08 14:16 |
|
Note Added: 0083520 | |
2019-04-08 14:16 |
|
Assigned To | ifv => msv |
2019-04-08 14:16 |
|
Status | assigned => resolved |
2019-04-08 18:29 |
|
Note Added: 0083537 | |
2019-04-08 18:30 |
|
Assigned To | msv => ifv |
2019-04-08 18:30 |
|
Status | resolved => assigned |
2019-04-19 11:44 | git | Note Added: 0083875 | |
2019-04-19 16:22 |
|
Note Added: 0083883 | |
2019-04-19 16:22 |
|
Assigned To | ifv => msv |
2019-04-19 16:22 |
|
Status | assigned => resolved |
2019-04-22 11:20 |
|
Assigned To | msv => ifv |
2019-04-22 11:20 |
|
Status | resolved => assigned |
2019-04-22 14:10 | git | Note Added: 0083929 | |
2019-04-22 16:10 |
|
Note Added: 0083932 | |
2019-04-22 16:10 |
|
Assigned To | ifv => msv |
2019-04-22 16:10 |
|
Status | assigned => resolved |
2019-04-22 16:33 |
|
Note Added: 0083934 | |
2019-04-22 16:33 |
|
Assigned To | msv => bugmaster |
2019-04-22 16:33 |
|
Status | resolved => reviewed |
2019-04-22 19:17 | bugmaster | Test case number | => perf/moddata/bug30435 |
2019-04-22 19:21 | bugmaster | Note Added: 0083936 | |
2019-04-22 19:21 | bugmaster | Status | reviewed => tested |
2019-04-27 12:38 |
|
Changeset attached | => occt master ba7f665d |
2019-04-27 12:38 |
|
Assigned To | bugmaster => ifv |
2019-04-27 12:38 |
|
Status | tested => verified |
2019-04-27 12:38 |
|
Resolution | open => fixed |
2019-04-27 13:08 | git | Note Added: 0084028 |