View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0026199 | Open CASCADE | OCCT:Visualization | public | 2015-05-07 19:10 | 2015-10-23 20:51 |
Reporter | Assigned To | bugmaster | |||
Priority | normal | Severity | feature | ||
Status | closed | Resolution | fixed | ||
Target Version | 6.9.1 | Fixed in Version | 6.9.1 | ||
Summary | 0026199: Visualization - use NCollection_IndexedMap instead of NCollection_Sequence in OpenGl_BVHClipPrimitiveSet to improve performance | ||||
Description | 'vclear' is slow in case of large number of object (10^5 and more). It is necessary to redesign OpenGl_BVHClipPrimitiveSet to use more efficient collection. | ||||
Steps To Reproduce | pload MODELING VISUALIZATION psphere s 0.5 tclean s incmesh s 0.1 trinfo s vinit View1 vclear vaxo vsetdispmode 1 vdefaults -defl 1.0 -autoTriang off vdisplay s set aNb1 100 # display 100x100 connected instances of single presentation puts "Creating [expr $aNb1*$aNb1] instances..." set t [time {for {set i 0} {$i < $aNb1} {incr i} {for {set j 0} {$j < $aNb1} {incr j} {vconnectto s_${i}_${j} ${i} ${j} 0 s -noupdate}}}] set d1 [lindex $t 0] puts "Done in $d1 microseconds!\n" # the following command is slow vclear | ||||
Tags | No tags attached. | ||||
Test case number | bugs vis(004) bug26199 | ||||
parent of | 0026203 | closed | bugmaster | Open CASCADE | Foundation Classes - provide method ::Swap() for NCollection_IndexedMap and NCollection_IndexedDataMap |
related to | 0026139 | closed | Community | AIS_InteractiveContext::Display performance regression | |
related to | 0026220 | closed | bugmaster | Open CASCADE | Visualization - In Graphic3d_Structure use single NCollection_IndexedMap instead of NCollection_DataMap and NCollection_Sequence |
related to | 0026221 | closed | bugmaster | Open CASCADE | Visualization - use NCollection_IndexedMap instead of NCollection_Sequence in OpenGl_Layer to improve performance |
|
Branch CR26199 has been created by dbp. SHA-1: b0b3e08b93a6c64239c9a902099c588dc7cc4431 Detailed log of new commits: Author: dbp Date: Fri May 8 18:17:12 2015 +0300 0026199: Visualization - OpenGl_BVHClipPrimitiveSet::Remove() is slow due to the use of NCollection_Sequence This patch improves performance of OpenGl_BVHClipPrimitiveSet. In particular, on the attached test case for 90 000 boxes the results are the following: 1) Master: vdisplay - 55 sec, 5 FPS, 1.4 GB memory, vclear - 180 sec. 2) Branch: vdisplay - 1.3 sec, 5 FPS, 1.4 GB memory, vclear - 90 sec. So, the patch improves vdisplay in ~40 times, and vclear in ~2 times without extra memory and with no impact on rendering performance. However, the vclear time is still significant. According to profile results, it is due to Graphic3d_Structure::DisconnectAll method. |
|
Dear kgv, please review the patch in branch CR26199. |
|
Patch is ready for testing, but please update commit description before integration. |
|
Dear BugMaster, Branch CR26199 from occt git-repository (and master from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested on Release mode. SHA-1: b0b3e08b93a6c64239c9a902099c588dc7cc4431 Number of compiler warnings: occt component : Linux: 18 (18 on master) Windows: 0 (0 on master) products component : Linux: 4 (4 on master) Windows: 0 (0 on master) Regressions/Differences: http://occt-tests/CR26199-master-occt-64/Debian60-64/bugs/vis/bug23654_MarkersRecompute.html http://occt-tests/CR26199-master-occt-64/Windows-64-VC10/bugs/vis/bug23654_MarkersRecompute.html bugs vis(004) bug23654_MarkersRecompute http://occt-tests/CR26199-master-occt-64/Debian60-64/bugs/vis/bug24131_markers.html http://occt-tests/CR26199-master-occt-64/Windows-64-VC10/bugs/vis/bug24131_markers.html bugs vis(004) bug24131_markers Testing cases: Testing on Linux: occt component : Total MEMORY difference: 95415997 / 95509523 [-0.10%] Total CPU difference: 53780.77999999937 / 51840.519999999386 [+3.74%] products component : Total MEMORY difference: 23841948 / 23898135 [-0.24%] Total CPU difference: 17345.749999999996 / 16271.109999999975 [+6.60%] Testing on Windows: occt component : Total MEMORY difference: 59157126 / 59102266 [+0.09%] Total CPU difference: 17177.9409142989 / 17075.853859898856 [+0.60%] products component : Total MEMORY difference: 15632998 / 15636788 [-0.02%] Total CPU difference: 6516.114969699989 / 6469.236669199996 [+0.72%] There are no differences in images found by testdiff. |
|
Branch CR26199_1 has been created by dbp. SHA-1: 8e60a5c42a290c7f28ca38e2a73c4de3d640d1c0 Detailed log of new commits: Author: dbp Date: Fri May 8 18:17:12 2015 +0300 0026199: Visualization - OpenGl_BVHClipPrimitiveSet::Remove() is slow due to the use of NCollection_Sequence This patch improves performance of OpenGl_BVHClipPrimitiveSet. In particular, on the attached test case for 90 000 boxes the results are the following: 1) Master: vdisplay - 55 sec, 5 FPS, 1.4 GB memory, vclear - 180 sec. 2) Branch: vdisplay - 1.3 sec, 5 FPS, 1.4 GB memory, vclear - 90 sec. So, the patch improves vdisplay in ~40 times, and vclear in ~2 times without extra memory and with no impact on rendering performance. However, the vclear time is still significant. According to profile results, it is due to Graphic3d_Structure::DisconnectAll method. |
|
Dear kgv, the bug was fixed in another branch (0026203). This patch was rebased on corrected CR26203 and pushed to branch CR26199_1. |
|
Branch CR26199_1 has been updated forcibly by dbp. SHA-1: 37e1e772972e66fd9396f3d427f2d848dc1c727e |
|
Please test updated patch. |
|
Branch CR26199_1 has been updated forcibly by mkv. SHA-1: 8251430f234a63b4094a7a0740dcfaba02dc2dc1 |
|
Dear BugMaster, Branch CR26199_1 was rebased on current master of occt git-repository. SHA-1: 60f602b8fbd0c24a0d6dbc0b4450bc780e998bb5 |
|
Dear BugMaster, Branch CR26199_1 from occt git-repository (and master from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested on Release mode. SHA-1: 60f602b8fbd0c24a0d6dbc0b4450bc780e998bb5 Number of compiler warnings: occt component : Linux: 18 (18 on master) Windows: 0 (0 on master) products component : Linux: 4 (4 on master) Windows: 0 (0 on master) Regressions/Differences: No regressions/differences Testing cases: http://occt-tests/CR26199-1-master-occt-64/Debian70-64/bugs/vis/bug26199.html http://occt-tests/CR26199-1-master-occt-64/Windows-64-VC10/bugs/vis/bug26199.html bugs vis(004) bug26199: OK Testing on Linux: occt component : Total MEMORY difference: 99960057 / 100094404 [-0.13%] Total CPU difference: 19524.47999999998 / 19358.840000000175 [+0.86%] products component : Total MEMORY difference: 24217802 / 24391409 [-0.71%] Total CPU difference: 7919.630000000018 / 7582.950000000026 [+4.44%] Testing on Windows: occt component : Total MEMORY difference: 58903670 / 59280108 [-0.64%] Total CPU difference: 16918.963654198968 / 16999.460170198952 [-0.47%] products component : Total MEMORY difference: 15650266 / 15653430 [-0.02%] Total CPU difference: 6600.854712899992 / 6567.907301699987 [+0.50%] There are no differences in images found by testdiff. |
|
Dear dbp, could you please review following test case bugs vis(004) bug26199: OK There is following warning after vdefaults draw-command: Warning, unknown argument '-DEFL' |
|
Branch CR26199_1 has been updated by mkv. SHA-1: 7581c402ec735c39f1a4be02c2867a50323fad8b Detailed log of new commits: Author: mkv Date: Tue May 19 14:47:00 2015 +0300 Test case for issue CR26199 |
|
Dear mkv, test case bug26199 is OK. |
|
Dear bugmaster, test case bug26199 was reviewed. Please proceed. |
|
Dear Denis, > There is following warning after vdefaults draw-command: > Warning, unknown argument '-DEFL' please fix misprint in implementation of vdefaults command within the patch. } if (anArg == "-AUTOTR" || anArg == "-AUTOTRIANG" || anArg == "-AUTOTRIANGULATION") here should be else if. |
|
Branch CR26199_1 has been updated by dbp. SHA-1: bc0ee9af24f88b8a0bb2e71418a89769f40f4d17 Detailed log of new commits: Author: dbp Date: Thu May 21 12:46:10 2015 +0300 Fix invalid warnings in 'vdefaults' command. |
|
Dear bugmaster, invalid warnings in 'vdefaults' command were fixed. Please proceed with branch CR26199_1. |
|
Please take patch into IR - retesting is not needed. |
|
Dear BugMaster, Branch CR26199_1 is TESTED. |
|
Branch CR26199 has been deleted by kgv. SHA-1: b0b3e08b93a6c64239c9a902099c588dc7cc4431 |
|
Branch CR26199_1 has been deleted by kgv. SHA-1: bc0ee9af24f88b8a0bb2e71418a89769f40f4d17 |
occt: master 385c43e7 2015-05-21 11:30:38
Committer: bugmaster Details Diff |
0026199: Visualization - use NCollection_IndexedMap instead of NCollection_Sequence in OpenGl_BVHClipPrimitiveSet to improve performance This patch improves performance of OpenGl_BVHClipPrimitiveSet. In particular, on the attached test case for 90 000 spheres the results are the following: 1) Master: vdisplay - 55 sec, 5 FPS, 1.4 GB memory, vclear - 180 sec. 2) Branch: vdisplay - 1.3 sec, 5 FPS, 1.4 GB memory, vclear - 90 sec. So, the patch improves vdisplay in ~40 times, and vclear in ~2 times without extra memory and with no impact on rendering performance. However, the vclear time is still significant. According to profile results, it is due to Graphic3d_Structure::DisconnectAll method. Test case for issue CR26199 Fix invalid warnings in 'vdefaults' command. |
Affected Issues 0026199 |
|
mod - src/OpenGl/OpenGl_BVHClipPrimitiveSet.cxx | Diff File | ||
mod - src/OpenGl/OpenGl_BVHClipPrimitiveSet.hxx | Diff File | ||
mod - src/ViewerTest/ViewerTest_ViewerCommands.cxx | Diff File | ||
add - tests/bugs/vis/bug26199 | Diff File |
Date Modified | Username | Field | Change |
---|---|---|---|
2015-05-07 19:10 |
|
New Issue | |
2015-05-07 19:10 |
|
Assigned To | => kgv |
2015-05-08 15:01 |
|
Relationship added | related to 0026139 |
2015-05-08 15:06 | kgv | Assigned To | kgv => vpa |
2015-05-08 15:06 | kgv | Status | new => assigned |
2015-05-08 15:06 | kgv | Summary | Visualization - OpenGl_BVHClipPrimitiveSet::Remove is slow due to the use of NCollection_Sequence => Visualization - OpenGl_BVHClipPrimitiveSet::Remove() is slow due to the use of NCollection_Sequence |
2015-05-08 15:06 | kgv | Steps to Reproduce Updated | |
2015-05-08 16:09 |
|
Assigned To | vpa => dbp |
2015-05-08 18:17 | git | Note Added: 0040811 | |
2015-05-08 18:18 |
|
Note Added: 0040812 | |
2015-05-08 18:18 |
|
Assigned To | dbp => kgv |
2015-05-08 18:18 |
|
Status | assigned => resolved |
2015-05-08 20:23 | kgv | Note Added: 0040813 | |
2015-05-08 20:23 | kgv | Assigned To | kgv => bugmaster |
2015-05-08 20:23 | kgv | Severity | minor => feature |
2015-05-08 20:23 | kgv | Status | resolved => reviewed |
2015-05-08 20:23 | kgv | Summary | Visualization - OpenGl_BVHClipPrimitiveSet::Remove() is slow due to the use of NCollection_Sequence => Visualization - use NCollection_IndexedMap instead of NCollection_Sequence in OpenGl_BVHClipPrimitiveSet to improve performance |
2015-05-12 12:12 |
|
Assigned To | bugmaster => mkv |
2015-05-13 18:48 |
|
Relationship added | related to 0026220 |
2015-05-13 18:49 |
|
Relationship added | related to 0026221 |
2015-05-13 20:06 |
|
Note Added: 0040869 | |
2015-05-13 20:06 |
|
Assigned To | mkv => dbp |
2015-05-13 20:06 |
|
Status | reviewed => assigned |
2015-05-14 11:59 | git | Note Added: 0040885 | |
2015-05-14 12:01 |
|
Note Added: 0040887 | |
2015-05-14 12:01 |
|
Assigned To | dbp => kgv |
2015-05-14 12:01 |
|
Status | assigned => resolved |
2015-05-14 12:12 | git | Note Added: 0040890 | |
2015-05-14 12:16 | kgv | Note Added: 0040894 | |
2015-05-14 12:16 | kgv | Assigned To | kgv => bugmaster |
2015-05-14 12:16 | kgv | Status | resolved => reviewed |
2015-05-14 12:21 |
|
Assigned To | bugmaster => mkv |
2015-05-15 16:50 | git | Note Added: 0041185 | |
2015-05-18 15:18 |
|
Note Added: 0041235 | |
2015-05-18 15:19 |
|
Note Added: 0041236 | |
2015-05-18 15:19 |
|
Assigned To | mkv => bugmaster |
2015-05-18 15:19 |
|
Status | reviewed => tested |
2015-05-18 15:20 |
|
Test case number | => perf ncollection(002) A2, A3, A4 |
2015-05-19 14:51 |
|
Note Edited: 0041236 | |
2015-05-19 14:52 |
|
Note Added: 0041278 | |
2015-05-19 14:52 |
|
Assigned To | bugmaster => dbp |
2015-05-19 14:52 |
|
Status | tested => feedback |
2015-05-19 14:53 |
|
Test case number | perf ncollection(002) A2, A3, A4 => bugs vis(004) bug26199 |
2015-05-19 14:53 | git | Note Added: 0041279 | |
2015-05-20 10:15 |
|
Note Added: 0041297 | |
2015-05-20 10:16 |
|
Note Added: 0041298 | |
2015-05-20 10:16 |
|
Assigned To | dbp => bugmaster |
2015-05-20 10:16 |
|
Status | feedback => reviewed |
2015-05-20 10:24 | kgv | Note Added: 0041299 | |
2015-05-20 10:24 | kgv | Assigned To | bugmaster => dbp |
2015-05-20 10:24 | kgv | Status | reviewed => feedback |
2015-05-21 12:46 | git | Note Added: 0041371 | |
2015-05-21 12:47 |
|
Note Added: 0041372 | |
2015-05-21 12:47 |
|
Assigned To | dbp => bugmaster |
2015-05-21 12:47 |
|
Status | feedback => reviewed |
2015-05-21 12:53 | kgv | Note Added: 0041374 | |
2015-05-21 13:32 |
|
Note Added: 0041377 | |
2015-05-21 13:32 |
|
Status | reviewed => tested |
2015-05-22 12:19 | bugmaster | Changeset attached | => occt master 385c43e7 |
2015-05-22 12:19 | bugmaster | Status | tested => verified |
2015-05-22 12:19 | bugmaster | Resolution | open => fixed |
2015-05-29 14:19 | bugmaster | Target Version | 7.1.0 => 7.0.0 |
2015-07-27 13:48 | git | Note Added: 0043544 | |
2015-07-27 13:48 | git | Note Added: 0043545 | |
2015-08-20 09:26 |
|
Relationship added | parent of 0026203 |
2015-08-26 11:11 |
|
Target Version | 7.0.0 => 6.9.1 |
2015-10-16 14:56 |
|
Status | verified => closed |
2015-10-23 20:51 |
|
Fixed in Version | => 6.9.1 |