View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0032769||Community||OCCT:Data Exchange||public||2022-01-11 20:10||2023-08-08 11:45|
|Summary||0032769: Data Exchange - Slow processing of very large STEP file|
|Description||I am testing our NIST STEP to X3D translator that is based on OCCT 7.6.0 with very large STEP files. The largest STEP file that I have is about 1.5 GB. It takes about 30-40 minutes to process in CAD Assistant and our software. However, in two other free viewers (C3D Viewer, eDrawings Viewer) it only takes about 5 minutes. Is there something to be improved to reduce the processing time? I think the slow part is actually reading the STEP file.|
20:24 ... Step File Reading : 'C:/LEGO Star Wars - UCS Millennium Falcon (75192).stp' ... STEP File Read ... ... Step File loaded ... 34810634 records (entities,sub-lists,scopes), 108692999 parameters ... Parameters prepared ... ... Objects analysed ... STEP Loading done : 19047906 Entities 20:58 Count STEP Reader Failures for 'LEGO Star Wars - UCS Millennium Falcon (75192).stp' ----- ----------- 23 F:CONTEXT_DEPENDENT_OVER_RIDING_STYLED_ITEM: Parameter n0.1 (style_context) : Entity has illegal type 2 F:CONTEXT_DEPENDENT_OVER_RIDING_STYLED_ITEM: Parameter n0.2 (style_context) : Entity has illegal type 7112 F:ITEM_DEFINED_TRANSFORMATION: Parameter n0.1 (name) not a quoted String 7112 F:(REPRESENTATION_RELATIONSHIP,REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION,SHAPE_REPRESENTATION_RELATIONSHIP): Parameter n0.1 (name) not a quoted String 7112 F:PRODUCT_DEFINITION_SHAPE: Parameter n0.1 (property_definition.name) not a quoted String Nb Total:21361 for 5 items 20:58 Count STEP Translator Warnings for 'LEGO Star Wars - UCS Millennium Falcon (75192).stp' ----- ----------- 12893 W:EDGE_LOOP: Edges were intersecting, corrected 26 W:EDGE_LOOP: Wire was split on several wires 25 W:(BOUNDED_SURFACE,B_SPLINE_SURFACE,B_SPLINE_SURFACE_WITH_KNOTS,GEOMETRIC_REPRESENTATION_ITEM,RATIONAL_B_SPLINE_SURFACE,REPRESENTATION_ITEM,SURFACE): Surface forced to be periodic 323 W:B_SPLINE_SURFACE_WITH_KNOTS: Surface forced to be periodic Nb Total:13267 for 4 items 20:58 File C:/LEGO Star Wars - UCS Millennium Falcon (75192).stp [loaded in 383.172 s] [prepared in 1929.96 s] 21:00 [brepmesh Deflection: 3.2828 mm (rel.: 0.001) Angle: 20° Parallel: 1 MinSize: 0.1 mm InternalVerticesMode: 1 ControlSurfaceDeflection: 1] 21:04 [presentation computed in 309.362 s] 21:05 Frame is redrawn in 3253.62 ms [5213 groups] [7491 parts] [2913131 faces] [65601082 triangles] [average per part: 3780] [average per group: 6236] Private memory: 9623 MiB Working Set: 6945 MiB (peak: 11708 MiB) Pagefile usage: 9623 MiB (peak: 12543 MiB) Virtual memory: 16494 MiB Heap memory: 5255 MiB
|Steps To Reproduce||The very large STEP file is available here https://grabcad.com/library/lego-star-wars-ucs-millennium-falcon-75192-1 The author has many other Lego models, some that are also very large but not as large as this one.|
|Tags||No tags attached.|
|Test case number|
For the "STEP Reader Failures", they are all related to strings that are either two single quotes '' or a dollar sign $. In both cases they are meant to indicate that the attribute is a blank string. I would not consider them failures nor anything to be reported.
On my computer, both eDrawings Viewer and C3D Viewer displayed the STEP file in about 4 minutes. CAD Assistant took 39 minutes.
Any improvement in processing would be great.
Branch CR32769 has been created by ona.
Detailed log of new commits:
Date: Mon Nov 28 12:27:51 2022 +0300
0032769: Data Exchange - Slow processing of very large STEP file
- Set on optimized memory manager by default
Last edited: 2022-11-29 12:46
Most of the time was spent on pcurves computing (ShapeFix_Edge::FixAddPCurve function), where in turn a lot of time is spent on memory allocation in Extrema_GenExtPS class.
Memory allocation works much faster if the optimized memory manager is used. In my machine it takes 12 min instead of 35 min with the standard raw memory manager.
If the optimized memory manager is set globally some regressions are observed:
- performance is decreased
- memory is not freed immediately
So, the optimized memory manager should be used in particular cases with parameters chosen specifically.
Refer https://dev.opencascade.org/doc/overview/html/occt_user_guides__foundation_classes.html#occt_fcug_2_3 for details.
Optimized Memory manager is deprecated.
I really do not recommed to use this manager.
|2022-01-11 20:10||robertlipman||New Issue|
|2022-01-11 20:10||robertlipman||Assigned To||=> gka|
|2022-01-11 21:33||kgv||Description Updated|
|2022-01-11 21:33||kgv||Steps to Reproduce Updated|
|2022-01-11 21:34||kgv||Target Version||=> 7.7.0|
|2022-01-11 21:34||kgv||Summary||Slow processing of very large STEP file => Data Exchange - Slow processing of very large STEP file|
|2022-01-12 23:24||robertlipman||Note Added: 0106323|
||Target Version||7.7.0 => 7.8.0|
||Assigned To||gka => robertlipman|
||Assigned To||robertlipman => ona|
|2022-11-28 15:54||git||Note Added: 0112363|
||Note Added: 0112365|
||Note Edited: 0112365|
||Assigned To||ona => gka|
|2023-08-01 15:06||dpasukhi||Target Version||7.8.0 => Unscheduled|
|2023-08-08 11:38||dpasukhi||Assigned To||gka => dpasukhi|
|2023-08-08 11:45||dpasukhi||Note Added: 0113922|