DiscussionsIssue archiveOCCT:Modeling Algorithms

Archived issue #0024043

Performance improvements: Modeling Algorithms

CommunityOCCT:Modeling Algorithmsclosed7 public notes

Search issues

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

Steps to reproduce

N/A

Public activity

7 archived notes

Participants are labeled by their role within this record.

01Author
The fix pushed into the repository
02Commenter 2
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
03Author
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.
04Author
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.
05Commenter 5
Roman,
sorry, it is my misunderstanding of code: I did't see that myError is changed inside loop for i;
06Commenter 6
Ok
07Commenter 1
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.

Related records