Archived issue #0024043
Performance improvements: Modeling Algorithms
Description
Continuation of series started in #0024042
*Extrema_POnSurf
- removed inheritance from gp_Storable (reduces memory footprint)
- inlining
*GeomInt
- use of more efficient containers and allocators
*Intf
- caching out of loop variables
* IntPatch
- reduced use of sqrt()
* IntSurf
- use of NCollection_IncAllocator
*IntWalk_IWalking
- avoided copy construction of ThePathPoint
- using vector instead of sequence
- use of NCollection_IncAllocator
*Extrema_POnSurf
- removed inheritance from gp_Storable (reduces memory footprint)
- inlining
*GeomInt
- use of more efficient containers and allocators
*Intf
- caching out of loop variables
* IntPatch
- reduced use of sqrt()
* IntSurf
- use of NCollection_IncAllocator
*IntWalk_IWalking
- avoided copy construction of ThePathPoint
- using vector instead of sequence
- use of NCollection_IncAllocator
Steps to reproduce
N/A
Public activity
7 archived notes
Participants are labeled by their role within this record.
The fix pushed into the repository
Dear Roman,
in IntPatch_Polyline
you replace myError*myError by eps_2 in one place
if (d13_2 > eps_2)
but do not replace in others:
if (d_2 > myError * myError) {
...
why?
Br
Igor
in IntPatch_Polyline
you replace myError*myError by eps_2 in one place
if (d13_2 > eps_2)
but do not replace in others:
if (d_2 > myError * myError) {
...
why?
Br
Igor
Igor, sorry - I don't get the comment :-|. Please provide exact line numbers and alternative implementation, if you see something fits better. Current modification is just fully consistent with the original code but now uses square distances comparison.
Please take back ownership of the bug or forward respectively.
Please take back ownership of the bug or forward respectively.
Pushed small extra modification - ShapeAnalysis_Curve.cxx, which uses square distance comparison.
Appended to this tracker instead of opening an extra one to minimize overhead.
Appended to this tracker instead of opening an extra one to minimize overhead.
Roman,
sorry, it is my misunderstanding of code: I did't see that myError is changed inside loop for i;
sorry, it is my misunderstanding of code: I did't see that myError is changed inside loop for i;
Ok
Dear Commenter 2,
Branch CR24043 (and products from GIT master) was compiled on Linux and Windows platforms and tested.
[revision removed]
Number of compiler warnings:
occt component :
Linux: 2 (2 on master)
Windows: 7 (7 on master)
products component :
Linux: 0 (0 on master)
Windows: 63 (63 on master)
Regressions:
No regressions
Improvements:
No improvements
Testing cases:
Not needed
Testing on Linux:
Total MEMORY difference: 365444920 / 364979588
Total CPU difference: 42723.28000000064 / 44727.920000000915
Testing on Windows:
Total MEMORY difference: 424608896 / 425561460
Total CPU difference: 35944.21875 / 41690.390625
There are not differences in images found by testdiff.
Branch CR24043 (and products from GIT master) was compiled on Linux and Windows platforms and tested.
[revision removed]
Number of compiler warnings:
occt component :
Linux: 2 (2 on master)
Windows: 7 (7 on master)
products component :
Linux: 0 (0 on master)
Windows: 63 (63 on master)
Regressions:
No regressions
Improvements:
No improvements
Testing cases:
Not needed
Testing on Linux:
Total MEMORY difference: 365444920 / 364979588
Total CPU difference: 42723.28000000064 / 44727.920000000915
Testing on Windows:
Total MEMORY difference: 424608896 / 425561460
Total CPU difference: 35944.21875 / 41690.390625
There are not differences in images found by testdiff.
Related records