View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0026221 | Open CASCADE | OCCT:Visualization | public | 2015-05-13 18:48 | 2015-10-23 20:51 |
Reporter | Assigned To | bugmaster | |||
Priority | normal | Severity | minor | ||
Status | closed | Resolution | fixed | ||
Target Version | 6.9.1 | Fixed in Version | 6.9.1 | ||
Summary | 0026221: Visualization - use NCollection_IndexedMap instead of NCollection_Sequence in OpenGl_Layer to improve performance | ||||
Description | bool OpenGl_Layer::Remove (const OpenGl_Structure* theStruct, Standard_Integer& thePriority, Standard_Boolean isForChangePriority) is bottleneck in case of removing large number of connected objects. For attached test case it takes ~ 30 seconds (in release mode, Core i5 3.1 GHz). | ||||
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 # disable output of commands decho off set aNb1 300 # display 300x300 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" # this command is slow (~ 30 secs) vclear | ||||
Tags | No tags attached. | ||||
Test case number | bugs vis bug26199 | ||||
related to | 0026029 | closed | Visualization - Poor performance of connected objects | |
related to | 0026199 | closed | bugmaster | Visualization - use NCollection_IndexedMap instead of NCollection_Sequence in OpenGl_BVHClipPrimitiveSet to improve performance |
related to | 0026220 | closed | bugmaster | Visualization - In Graphic3d_Structure use single NCollection_IndexedMap instead of NCollection_DataMap and NCollection_Sequence |
|
Branch CR26221 has been created by dbp. SHA-1: 427e21ca2b527722065b3a5df346475b7caf6d9a Detailed log of new commits: Author: dbp Date: Fri May 22 13:38:37 2015 +0300 0026221: Visualization - Revise OpenGl_Layer to use more efficient collection for OpenGl_Structures |
|
Dear kgv, please review the patch in branch CR26221. This patch eliminates last known bottleneck when processing large number of (connected) obejcts. In fact, both displaying and removing 90 000 of spheres (from test case) now takes 1-2 seconds. Both memory consumption and rendering performance were not affected. |
|
Branch CR26221_1 has been created by kgv. SHA-1: 4943903d9000a5be6b385d6a2881f153b201c33e Detailed log of new commits: Author: dbp Date: Mon May 25 09:43:06 2015 +0300 Visualization - use NCollection_IndexedMap instead of NCollection_Sequence in OpenGl_Layer to improve performance |
|
Dear Denis, please complete the patch and process OpenGl_View::myImmediateList, so that OpenGl_SequenceOfStructure type can be removed. |
|
Branch CR26221_2 has been created by dbp. SHA-1: a2875bcab247e643cf75744753ad22bc98aa2bbf Detailed log of new commits: Author: dbp Date: Mon May 25 09:43:06 2015 +0300 Visualization - use NCollection_IndexedMap instead of NCollection_Sequence in OpenGl_Layer to improve performance |
|
Dear kgv, please review the patch in branch CR26221_2. |
|
Branch CR26221_2 has been updated forcibly by dbp. SHA-1: 19928d4bcff55a81791a13cd64e4200570e3a50e |
|
Please test the patch. |
|
Dear BugMaster, Branch CR26221_2 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: 19928d4bcff55a81791a13cd64e4200570e3a50e Number of compiler warnings: occt component : Linux: 25 (25 on master) Windows: 0 (0 on master) products component : Linux: 37 (37 on master) Windows: 0 (0 on master) Regressions/Differences: No regressions/differences Testing cases: http://occt-tests/CR26221-2-master-occt-64/Debian70-64/bugs/vis/bug26199.html http://occt-tests/CR26221-2-master-occt-64/Windows-64-VC10/bugs/vis/bug26199.html bugs vis bug26199: OK Testing on Linux: occt component : Total MEMORY difference: 99919376 / 99834711 [+0.08%] Total CPU difference: 18922.18000000004 / 18381.79000000015 [+2.94%] products component : Total MEMORY difference: 24094088 / 24303876 [-0.86%] Total CPU difference: 8072.450000000004 / 7853.200000000018 [+2.79%] Testing on Windows: occt component : Total MEMORY difference: 59055247 / 58652092 [+0.69%] Total CPU difference: 16948.135841198928 / 16786.17560299903 [+0.96%] products component : Total MEMORY difference: 15633460 / 15628514 [+0.03%] Total CPU difference: 6591.104650399998 / 6588.515033799982 [+0.04%] There are no differences in images found by testdiff. |
|
Branch CR26221_2 has been deleted by kgv. SHA-1: 19928d4bcff55a81791a13cd64e4200570e3a50e |
|
Branch CR26221 has been deleted by kgv. SHA-1: 427e21ca2b527722065b3a5df346475b7caf6d9a |
|
Branch CR26221_1 has been deleted by kgv. SHA-1: 4943903d9000a5be6b385d6a2881f153b201c33e |
occt: master 9f112210 2015-05-25 06:43:06
Committer: bugmaster Details Diff |
0026221: Visualization - use NCollection_IndexedMap instead of NCollection_Sequence in OpenGl_Layer to improve performance |
Affected Issues 0026221 |
|
mod - src/OpenGl/FILES | Diff File | ||
mod - src/OpenGl/OpenGl_BVHClipPrimitiveSet.cxx | Diff File | ||
mod - src/OpenGl/OpenGl_BVHClipPrimitiveSet.hxx | Diff File | ||
mod - src/OpenGl/OpenGl_Layer.cxx | Diff File | ||
mod - src/OpenGl/OpenGl_Layer.hxx | Diff File | ||
rm - src/OpenGl/OpenGl_SequenceOfStructure.hxx | Diff File | ||
mod - src/OpenGl/OpenGl_View.hxx | Diff File | ||
mod - src/OpenGl/OpenGl_View_2.cxx | Diff File | ||
mod - src/OpenGl/OpenGl_View_Raytrace.cxx | Diff File | ||
mod - src/OpenGl/OpenGl_Workspace.cxx | Diff File |
Date Modified | Username | Field | Change |
---|---|---|---|
2015-05-13 18:48 |
|
New Issue | |
2015-05-13 18:48 |
|
Assigned To | => kgv |
2015-05-13 18:49 |
|
Relationship added | related to 0026220 |
2015-05-13 18:49 |
|
Relationship added | related to 0026029 |
2015-05-13 18:49 |
|
Relationship added | related to 0026199 |
2015-05-13 18:52 | kgv | Description Updated | |
2015-05-13 18:52 | kgv | Steps to Reproduce Updated | |
2015-05-13 18:52 | kgv | Steps to Reproduce Updated | |
2015-05-21 16:08 |
|
Assigned To | kgv => dbp |
2015-05-22 13:38 | git | Note Added: 0041423 | |
2015-05-22 13:42 |
|
Note Added: 0041424 | |
2015-05-22 13:42 |
|
Assigned To | dbp => kgv |
2015-05-22 13:42 |
|
Status | new => resolved |
2015-05-25 09:41 | kgv | Summary | Visualization - Revise OpenGl_Layer to use more efficient collection for OpenGl_Structures => Visualization - use NCollection_IndexedMap instead of NCollection_Sequence in OpenGl_Layer to improve performance |
2015-05-25 09:43 | git | Note Added: 0041474 | |
2015-05-25 09:44 | kgv | Note Added: 0041475 | |
2015-05-25 09:44 | kgv | Assigned To | kgv => dbp |
2015-05-25 09:44 | kgv | Status | resolved => assigned |
2015-05-26 11:09 | git | Note Added: 0041540 | |
2015-05-26 11:10 |
|
Note Added: 0041541 | |
2015-05-26 11:10 |
|
Assigned To | dbp => kgv |
2015-05-26 11:10 |
|
Status | assigned => resolved |
2015-05-26 11:29 | git | Note Added: 0041544 | |
2015-05-26 11:33 | kgv | Note Added: 0041545 | |
2015-05-26 11:33 | kgv | Assigned To | kgv => bugmaster |
2015-05-26 11:33 | kgv | Status | resolved => reviewed |
2015-05-26 11:57 |
|
Assigned To | bugmaster => mkv |
2015-05-27 18:45 |
|
Note Added: 0041622 | |
2015-05-27 18:45 |
|
Assigned To | mkv => bugmaster |
2015-05-27 18:45 |
|
Status | reviewed => tested |
2015-05-27 18:45 |
|
Test case number | => bugs vis bug26199 |
2015-05-29 14:15 | bugmaster | Changeset attached | => occt master 9f112210 |
2015-05-29 14:15 | bugmaster | Status | tested => verified |
2015-05-29 14:15 | bugmaster | Resolution | open => fixed |
2015-07-27 13:34 | git | Note Added: 0043502 | |
2015-07-27 13:48 | git | Note Added: 0043551 | |
2015-07-27 13:48 | git | Note Added: 0043552 | |
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 |