View Issue Details

IDProjectCategoryView StatusLast Update
0024043CommunityOCCT:Modeling Algorithmspublic2013-12-19 13:56
ReporterRoman Lygin Assigned ToRoman Lygin  
PrioritynormalSeverityintegration request 
Status closedResolutionfixed 
PlatformAOSL 
Product Version6.6.0 
Target Version6.7.0Fixed in Version6.7.0 
Summary0024043: Performance improvements: Modeling Algorithms
DescriptionContinuation 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 ReproduceN/A
TagsNo tags attached.
Test case numberNot needed

Relationships

related to 0024042 closedapn Performance improvements: Foundation Classes 

Activities

Roman Lygin

2013-06-25 21:35

developer   ~0024865

The fix pushed into the repository

ifv

2013-07-05 12:28

developer   ~0024969

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

Roman Lygin

2013-07-06 14:55

developer   ~0024978

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.

Roman Lygin

2013-07-06 15:13

developer   ~0024979

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.

ifv

2013-07-08 09:51

developer   ~0024982

Roman,
sorry, it is my misunderstanding of code: I did't see that myError is changed inside loop for i;

ifv

2013-07-08 09:51

developer   ~0024983

Ok

apn

2013-07-09 12:27

administrator   ~0024998

Dear BugMaster,

Branch CR24043 (and products from GIT master) was compiled on Linux and Windows platforms and tested.
SHA-1: c870d4e54901479bf7bb0b0e63d2c3d31a1353fb

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 Changesets

occt: master 96a85238

2013-07-12 08:27:30

Roman Lygin

Details Diff
0024043: Performance improvements: Modeling Algorithms

Performance improvements: Modeling Algorithms (added Shape Healing)
Added TODO to unstable test cases
Affected Issues
0024043
mod - src/Extrema/Extrema_POnSurf.cdl Diff File
mod - src/Extrema/Extrema_POnSurf.cxx Diff File
mod - src/Extrema/Extrema_POnSurf.lxx Diff File
mod - src/GeomInt/GeomInt_IntSS_1.cxx Diff File
mod - src/Intf/Intf_InterferencePolygon2d.cxx Diff File
mod - src/IntPatch/IntPatch_PolyLine.cxx Diff File
add - src/IntSurf/FILES Diff File
mod - src/IntSurf/IntSurf.cdl Diff File
add - src/IntSurf/IntSurf_Allocator.hxx Diff File
mod - src/IntSurf/IntSurf_LineOn2S.cdl Diff File
mod - src/IntSurf/IntSurf_LineOn2S.cxx Diff File
add - src/IntSurf/IntSurf_SequenceOfPntOn2S.hxx Diff File
mod - src/IntWalk/FILES Diff File
mod - src/IntWalk/IntWalk.cdl Diff File
mod - src/IntWalk/IntWalk_IWalking.cdl Diff File
mod - src/IntWalk/IntWalk_IWalking_1.gxx Diff File
mod - src/IntWalk/IntWalk_IWalking_2.gxx Diff File
mod - src/IntWalk/IntWalk_IWalking_3.gxx Diff File
mod - src/IntWalk/IntWalk_IWalking_4.gxx Diff File
mod - src/IntWalk/IntWalk_IWalking_6.gxx Diff File
mod - src/IntWalk/IntWalk_IWLine.cdl Diff File
mod - src/IntWalk/IntWalk_IWLine.gxx Diff File
add - src/IntWalk/IntWalk_VectorOfInteger.hxx Diff File
add - src/IntWalk/IntWalk_VectorOfWalkingData.hxx Diff File
mod - src/ShapeAnalysis/ShapeAnalysis_Curve.cxx Diff File
mod - tests/bugs/fclasses/bug7287_1 Diff File
mod - tests/de/iges_3/A9 Diff File
mod - tests/de/step_1/J6 Diff File

Issue History

Date Modified Username Field Change
2013-06-25 21:25 Roman Lygin New Issue
2013-06-25 21:25 Roman Lygin Assigned To => ifv
2013-06-25 21:26 Roman Lygin Relationship added related to 0024042
2013-06-25 21:35 Roman Lygin Note Added: 0024865
2013-06-25 21:35 Roman Lygin Status new => resolved
2013-07-05 12:28 ifv Note Added: 0024969
2013-07-05 12:28 ifv Assigned To ifv => Roman Lygin
2013-07-05 12:28 ifv Status resolved => feedback
2013-07-06 14:55 Roman Lygin Note Added: 0024978
2013-07-06 14:55 Roman Lygin Status feedback => acknowledged
2013-07-06 15:13 Roman Lygin Note Added: 0024979
2013-07-08 09:51 ifv Note Added: 0024982
2013-07-08 09:51 ifv Note Added: 0024983
2013-07-08 09:51 ifv Status acknowledged => reviewed
2013-07-08 12:15 apn Assigned To Roman Lygin => apn
2013-07-09 12:27 apn Note Added: 0024998
2013-07-09 12:28 apn Test case number => Not needed
2013-07-09 12:28 apn Assigned To apn => bugmaster
2013-07-09 12:28 apn Status reviewed => tested
2013-07-09 12:28 apn Target Version => 6.7.0
2013-07-12 18:08 Roman Lygin Changeset attached => occt master 96a85238
2013-07-12 18:09 Roman Lygin Assigned To bugmaster => Roman Lygin
2013-07-12 18:09 Roman Lygin Status tested => verified
2013-07-12 18:09 Roman Lygin Resolution open => fixed
2013-12-19 13:53 bugmaster Status verified => closed
2013-12-19 13:56 bugmaster Fixed in Version => 6.7.0