View Issue Details

IDProjectCategoryView StatusLast Update
0031490Open CASCADEOCCT:Foundation Classespublic2020-12-02 17:12
Reporterkgv Assigned Tobugmaster  
PrioritynormalSeverityfeature 
Status closedResolutionfixed 
Target Version7.5.0Fixed in Version7.5.0 
Summary0031490: Foundation Classes, Poly_Connect - speed up temporary allocations
DescriptionPoly_Connect initialization takes considerable time on small allocations / deallocations which can be optimized by using NCollection_IncAllocator.
Steps To ReproduceN/A
Additional information
and documentation updates
The patch reduces computation of Shaded + Face Boundaries presentation time from 19 to 12 seconds on tested large triangulation-only model (19 s on master -> 16 s with Poly_Connect patch -> 12 s with fillFaceBoundaries() patch).
TagsNo tags attached.
Test case numberNot required

Attached Files

  • polyconnect_times.png (104,906 bytes)
  • addedges_times.png (86,246 bytes)

Activities

git

2020-04-08 10:22

administrator   ~0091455

Branch CR31490_1 has been created by kgv.

SHA-1: 0bd94230cd4188bf8a1d1d1bf349c70aa908f88d


Detailed log of new commits:

Author: kgv
Date: Wed Apr 8 10:22:33 2020 +0300

    StdPrs_WFShape::Add() - use NCollection_IncAllocator for temporary sequences of points.
    NCollection_DefineHSequence - added constructor taking allocator.

Author: kgv
Date: Wed Apr 8 10:22:26 2020 +0300

    0031490: Foundation Classes, Poly_Connect - speed up temporary allocations
    
    Poly_Connect::Load() now uses NCollection_IncAllocator instead of new/delete
    for allocation temporary sequence elements.

git

2020-04-08 10:23

administrator   ~0091456

Branch CR31490_2 has been created by kgv.

SHA-1: bec924fcf75081db0fdb497b8342a211d2be4bcd


Detailed log of new commits:

Author: kgv
Date: Wed Apr 8 10:22:26 2020 +0300

    0031490: Foundation Classes, Poly_Connect - speed up temporary allocations
    
    Poly_Connect::Load() now uses NCollection_IncAllocator instead of new/delete
    for allocation temporary sequence elements.

kgv

2020-04-08 10:43

developer  

polyconnect_times.png (104,906 bytes)

git

2020-04-08 11:10

administrator   ~0091458

Branch CR31490_1 has been updated by kgv.

SHA-1: d9649d5c8e66e6fe575f93102959fb2c523ac4b9


Detailed log of new commits:

Author: kgv
Date: Wed Apr 8 11:10:35 2020 +0300

    StdPrs_ShadedShape, fillFaceBoundaries() now uses NCollection_IncAllocator for temporary points.

git

2020-04-08 11:10

administrator   ~0091459

Branch CR31490_2 has been updated by kgv.

SHA-1: bd69bae95b722718cf1626ac8a8272792561a924


Detailed log of new commits:

Author: kgv
Date: Wed Apr 8 11:10:35 2020 +0300

    StdPrs_ShadedShape, fillFaceBoundaries() now uses NCollection_IncAllocator for temporary points.

git

2020-04-08 11:11

administrator   ~0091460

Branch CR31490_3 has been created by kgv.

SHA-1: 51c991f67bca74d0466b71da75a0cf2fa13a786b


Detailed log of new commits:

Author: kgv
Date: Wed Apr 8 10:22:26 2020 +0300

    0031490: Foundation Classes, Poly_Connect - speed up temporary allocations
    
    Poly_Connect::Load() now uses NCollection_IncAllocator instead of new/delete
    for allocation temporary sequence elements.
    
    StdPrs_ShadedShape, fillFaceBoundaries() now uses NCollection_IncAllocator for temporary points.

kgv

2020-04-08 11:19

developer  

addedges_times.png (86,246 bytes)

git

2020-04-08 12:30

administrator   ~0091461

Branch CR31490_3 has been updated forcibly by kgv.

SHA-1: a7f08ffe67158e04289b80f4e51a058eb251ad80

kgv

2020-04-08 14:16

developer   ~0091463

Patch in OCCT branch CR31490_3 is ready for review.

http://jenkins-test-12.nnov.opencascade.com/view/CR31490_3-master-KGV

abv

2020-04-08 21:07

manager   ~0091467

Reviewed, please integrate.
OCCT branch CR31490_3 at a7f08ffe67158e04289b80f4e51a058eb251ad80
Products branch: none

Kirill, please indicate how to find the test model where you observed acceleration

kgv

2020-04-08 21:24

developer   ~0091468

> please indicate how to find the test model
It is confidential one.

bugmaster

2020-04-10 10:32

administrator   ~0091491

Combination -
OCCT branch : WEEK-15
master SHA - 8ca56abb96d5bd68dea0dbb116a68ce15295fb71
a206de37fbfa0bf71bd534ae47192bbec23b8522
Products branch : WEEK-15 SHA - 8eb244753336daf5f887198e20b30ea5da22fe6b
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: 16879.130000000314 / 16879.510000000293 [-0.00%]
Products
Total CPU difference: 11275.300000000085 / 11333.720000000112 [-0.52%]
Windows-64-VC14:
OCCT
Total CPU difference: 18288.421875 / 18357.296875 [-0.38%]
Products
Total CPU difference: 13094.125 / 13129.8125 [-0.27%]


Image differences :
No differences that require special attention

Memory differences :
No differences that require special attention

git

2020-04-11 12:59

administrator   ~0091515

Branch CR31490_3 has been deleted by inv.

SHA-1: a7f08ffe67158e04289b80f4e51a058eb251ad80

git

2020-04-11 12:59

administrator   ~0091516

Branch CR31490_2 has been deleted by inv.

SHA-1: bd69bae95b722718cf1626ac8a8272792561a924

git

2020-04-11 12:59

administrator   ~0091517

Branch CR31490_1 has been deleted by inv.

SHA-1: d9649d5c8e66e6fe575f93102959fb2c523ac4b9

Related Changesets

occt: master 8f08e231

2020-04-08 07:22:26

kgv


Committer: bugmaster Details Diff
0031490: Foundation Classes, Poly_Connect - speed up temporary allocations

Poly_Connect::Load() now uses NCollection_IncAllocator instead of new/delete
for allocation temporary sequence elements.

StdPrs_ShadedShape, fillFaceBoundaries() now uses NCollection_IncAllocator for temporary points.
Affected Issues
0031490
mod - src/Poly/Poly_Connect.cxx Diff File
mod - src/StdPrs/StdPrs_ShadedShape.cxx Diff File

Issue History

Date Modified Username Field Change
2020-04-08 10:11 kgv New Issue
2020-04-08 10:11 kgv Assigned To => abv
2020-04-08 10:22 git Note Added: 0091455
2020-04-08 10:23 git Note Added: 0091456
2020-04-08 10:43 kgv File Added: polyconnect_times.png
2020-04-08 11:10 git Note Added: 0091458
2020-04-08 11:10 git Note Added: 0091459
2020-04-08 11:11 git Note Added: 0091460
2020-04-08 11:16 kgv Additional Information Updated
2020-04-08 11:19 kgv File Added: addedges_times.png
2020-04-08 12:30 git Note Added: 0091461
2020-04-08 14:16 kgv Note Added: 0091463
2020-04-08 14:16 kgv Status new => resolved
2020-04-08 21:07 abv Note Added: 0091467
2020-04-08 21:24 kgv Note Added: 0091468
2020-04-08 21:25 kgv Assigned To abv => bugmaster
2020-04-08 21:25 kgv Status resolved => reviewed
2020-04-10 10:32 bugmaster Note Added: 0091491
2020-04-10 10:32 bugmaster Status reviewed => tested
2020-04-10 10:33 bugmaster Test case number => Not required
2020-04-11 12:28 bugmaster Changeset attached => occt master 8f08e231
2020-04-11 12:28 bugmaster Status tested => verified
2020-04-11 12:28 bugmaster Resolution open => fixed
2020-04-11 12:59 git Note Added: 0091515
2020-04-11 12:59 git Note Added: 0091516
2020-04-11 12:59 git Note Added: 0091517
2020-12-02 16:43 emo Fixed in Version => 7.5.0
2020-12-02 17:12 emo Status verified => closed