View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0023974||Open CASCADE||OCCT:Data Exchange||public||2013-05-20 17:01||2018-09-09 13:06|
|Target Version||7.4.0||Fixed in Version||7.4.0|
|Summary||0023974: Optimization of convertation to STEP.|
|Description||Optimization of convertation to STEP.|
In order to improve performance it is necessary to reduce number of call function Transfer_Binder::AddResult
|Tags||No tags attached.|
|Test case number||Not needed|
Attached archive contains 2 scripts: t1 and t3. Each script opens BREP file and convert it to STEP format. First script convert 1000 prisms, t3 -- 3000.
Initially t1 was executed during 45 seconds, t3 -- 3m 45s.
After modification: t1 -- 25s, t3 -- 50s.
Scripts.7z (318,791 bytes)
I have tested the fix on current maater; my results on t1 is: 7.5 sec on master, 2.7 sec with the fix. There are two problems however (both on master and with the fix):
- if I add 'newmodel' before 'stepwrite', test becomes much longer (35 and 26 sec, respectively)
- calling 'newmodel' after the test (or repeating it twice) kills DRAW
See message of user Timo on OCCT forum, which can be related to similar problem:
When STEPControl_Writer::Transfer () is called multiple times in order to export a list of shapes to a common STEP file, the performance might be bad because the third parameter "compgraph" of the Transfer function is true by default. It means after every translation of a shape the graph is rebuilt.
Instead this parameter can be set to false and only after all shapes are translated the graph can be built once only by:
The patch for 0029830 fixes this issue.
The following timings for scripts:
t1 - 2.7 s
t3 - 8 s
There is no need to create such test case, as the patch 29830 contains the similar test cases where a dozens of shapes are put in the same compound and written to STEP model.
||The patch for 29830 also contains protection agains stack overflow during destruction of such model.|
||Please close this issue along with 0029830.|
Branch CR23974 has been deleted by inv.
||Assigned To||=> gka|
||Assigned To||gka => sdv|
||Note Added: 0024450|
||File Added: Scripts.7z|
||Relationship added||related to 0023979|
||Assigned To||sdv => gka|
||Status||new => resolved|
|2014-04-04 17:11||abv||Target Version||=> 6.8.0|
|2014-09-26 18:27||abv||Note Added: 0032266|
|2014-09-26 18:28||abv||Note Edited: 0032266|
|2014-10-17 02:36||abv||Target Version||6.8.0 => 7.1.0|
|2015-06-09 17:46||abv||Note Added: 0042065|
|2016-10-26 12:06||gka||Target Version||7.1.0 => 7.2.0|
|2017-08-15 12:42||abv||Target Version||7.2.0 => 7.4.0|
|2018-06-09 12:48||abv||Assigned To||gka => msv|
|2018-06-09 15:01||msv||Relationship added||related to 0029830|
|2018-06-09 15:10||msv||Note Added: 0076696|
|2018-06-09 15:11||msv||Note Added: 0076697|
|2018-06-09 18:21||msv||Note Added: 0076712|
|2018-06-09 18:21||msv||Assigned To||msv => bugmaster|
|2018-06-09 18:21||msv||Status||resolved => feedback|
|2018-08-28 13:00||bugmaster||Status||feedback => verified|
|2018-08-28 13:00||bugmaster||Resolution||open => fixed|
|2018-09-03 16:55||bugmaster||Test case number||=> Not needed|
|2018-09-09 13:06||git||Note Added: 0079058|