View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0002642 | Slicer4 | Core: Base Code | public | 2012-10-15 06:11 | 2017-09-27 10:56 |
Reporter | finetjul | Assigned To | finetjul | ||
Priority | normal | Severity | minor | Reproducibility | have not tried |
Status | acknowledged | Resolution | open | ||
Product Version | Slicer 4.1.1 | ||||
Target Version | backlog | Fixed in Version | |||
Summary | 0002642: Speed up scene event invocations | ||||
Description | a) See what has been done in VTK 6: b) If we call NodeRemovedEvent on each removed node (in addition to invoking the event on the scene), we should be able to speed up Slicer. Observers will then observe only the nodes they care about, it should decrease the size of the (unsorted) list of scene observers and speed-up each scene event invocation. | ||||
Tags | No tags attached. | ||||
c) Speedup vtkEventBroker::RemoveObservations():
d) Speedup vtkEventBroker::GetObservations():
e) Speedup vtkEventBroker::GetObservationsForSubjectByTag():
f) Speedup ctkVTKConnection:
g) Speedup vtkMRMLScene::RemoveReferencedNodeID
|
|
h) Review vtkMRMLModelDisplayableManager::UpdateFromMRML()
|
|
i) Improve performance of vtkPiecewiseFunction::RemovePoint:
|
|
a) fixed in r21580 |
|
j) vtkEventBroker should have maximum 1 observation (AnyEvent) on a vtkObject. It should then redirect the events to observers. |
|
k) vtkMRMLSliceLogic::UpdateSliceNode could be speed up by not calling vtkMRMLScene::GetNthNodeByClass. This method should be reviewed to improve performance. |
|
i) Exposing vtkMRMLSliceNode::GetRASToXY() (have the matrix cached maybe) would prevent many matrix inversions in the code (e.g. in the displayable managers) |
|
j) speed-up slice view zoom by wrapping SetFieldOfView and UpdateMatrices with Start/EndModify in vtkSliceViewInteractorStyle. This actually does not reduce the number of time observers are triggered because vtkMRMLSliceLogic::OnMRMLNodeModified() might actually trigger a new ModifiedEvent inside SetSliceExtentsToSliceNode() -> SetUVWExtentsAndDimensions() -> UpdateMatrices(). A second issue might comes from vtkSetAndObserveMRMLNodeEventsMacro in vtkMRMLAbstractLogic. If it is called twice, the 2nd time the old node value is not "unobserved". This can lead to errors or duplicated calls if it is done twice in a row. |
|
k) Add vtkMRMLDisplayableNode::SetAndObserveDisplayNode() |
|
@Julien: Re-targetting minor issue from 4.4 to 4.5 |
|
Slicer: 2145-support-for-installing-extension-from-file 9ecca3f0 2013-01-10 12:51:01 Details Diff |
ENH: Add Scene Performance test It measures time spent by some scene actions such as loading, closing, restoring, relayouting a scene or modifying/adding nodes. Issue 0002642 Example of performance on a MacBookPro laptop (2.4GHz): AddData (BrainAtlas2012.mrb) took 44865 msecs CloseScene () took 28706 msecs AddData (BrainAtlas2012.mrb) took 44579 msecs ModifyNode (vtkMRMLScalarVolumeNode1) took 4 msecs ModifyNode (vtkMRMLScalarVolumeNode2) took 35 msecs ModifyNode (vtkMRMLScalarVolumeNode3) took 20 msecs ModifyNode (vtkMRMLModelHierarchyNode2) took 14 msecs ModifyNode (vtkMRMLModelNode4) took 0 msecs ModifyNode (vtkMRMLModelDisplayNode5) took 14 msecs ModifyNode (vtkMRMLModelHierarchyNode3) took 13 msecs ModifyNode (vtkMRMLModelStorageNode1) took 4 msecs ModifyNode (vtkMRMLModelHierarchyNode301) took 18 msecs ModifyNode (vtkMRMLModelDisplayNode304) took 23 msecs ModifyNode (vtkMRMLModelHierarchyNode51) took 19 msecs AddNode (vtkMRMLModelNode302) took 46 msecs git-svn-id: http://svn.slicer.org/Slicer4/trunk@21579 3bd1e089-480b-0410-8dfb-8563597acbee |
||
mod - Applications/SlicerApp/Testing/Python/CMakeLists.txt | Diff File | ||
add - Applications/SlicerApp/Testing/Python/Resources/UI/ScenePerformance.ui | Diff File | ||
add - Applications/SlicerApp/Testing/Python/ScenePerformance.py | Diff File | ||
mod - Base/QTCore/qSlicerCoreIOManager.cxx | Diff File | ||
mod - Base/QTCore/qSlicerCoreIOManager.h | Diff File | ||
Slicer: 2145-support-for-installing-extension-from-file 8fade71e 2013-01-10 12:51:04 Details Diff |
ENH: Speed-up vtkObject event invokes Issue 0002642 Example of performance on a MacBookPro laptop: AddData (BrainAtlas2012.mrb) took 39877 msecs CloseScene () took 26271 msecs CloseScene () took 136 msecs AddData (BrainAtlas2012.mrb) took 36945 msecs ModifyNode (vtkMRMLScalarVolumeNode1) took 4 msecs ModifyNode (vtkMRMLScalarVolumeNode2) took 28 msecs ModifyNode (vtkMRMLScalarVolumeNode3) took 16 msecs ModifyNode (vtkMRMLModelHierarchyNode2) took 13 msecs ModifyNode (vtkMRMLModelNode5) took 1 msecs ModifyNode (vtkMRMLModelNode4) took 0 msecs ModifyNode (vtkMRMLModelDisplayNode5) took 12 msecs ModifyNode (vtkMRMLModelHierarchyNode3) took 12 msecs ModifyNode (vtkMRMLModelStorageNode1) took 4 msecs ModifyNode (vtkMRMLModelHierarchyNode301) took 17 msecs ModifyNode (vtkMRMLModelDisplayNode304) took 21 msecs ModifyNode (vtkMRMLModelHierarchyNode302) took 17 msecs AddNode (vtkMRMLModelNode5) took 90 msecs AddNode (vtkMRMLModelNode302) took 45 msecs git-svn-id: http://svn.slicer.org/Slicer4/trunk@21580 3bd1e089-480b-0410-8dfb-8563597acbee |
||
mod - SuperBuild/External_VTK.cmake | Diff File | ||
Slicer: 2145-support-for-installing-extension-from-file 8a52eb38 2013-01-10 12:51:08 Details Diff |
ENH: Speed-up vtkEventBroker Issue 0002642 Example of performance on a MacBookPro laptop: AddData (BrainAtlas2012.mrb) took 37541 msecs CloseScene () took 26276 msecs CloseScene () took 117 msecs AddData (BrainAtlas2012.mrb) took 37057 msecs ModifyNode (vtkMRMLScalarVolumeNode1) took 4 msecs ModifyNode (vtkMRMLScalarVolumeNode2) took 26 msecs ModifyNode (vtkMRMLScalarVolumeNode3) took 15 msecs ModifyNode (vtkMRMLScalarVolumeDisplayNode2) took 22 msecs ModifyNode (vtkMRMLModelHierarchyNode2) took 10 msecs ModifyNode (vtkMRMLModelNode4) took 0 msecs ModifyNode (vtkMRMLModelDisplayNode5) took 11 msecs ModifyNode (vtkMRMLModelHierarchyNode3) took 11 msecs ModifyNode (vtkMRMLModelStorageNode1) took 4 msecs AddNode (vtkMRMLModelNode302) took 41 msecs Layout (3) took 52 msecs Layout (2) took 18 msecs RestoreSceneView (vtkMRMLSceneViewNode15) took 2911 msecs RestoreSceneView (vtkMRMLSceneViewNode15) took 1608 msecs git-svn-id: http://svn.slicer.org/Slicer4/trunk@21581 3bd1e089-480b-0410-8dfb-8563597acbee |
||
mod - Libs/MRML/Core/vtkEventBroker.cxx | Diff File | ||
Slicer: 2145-support-for-installing-extension-from-file 92aefb88 2013-01-10 12:51:11 Details Diff |
ENH: Speed-up ctkVTKConnection Issue 0002642 Example of performance on a MacBookPro laptop: AddData (BrainAtlas2012.mrb) took 32574 msecs CloseScene () took 24954 msecs CloseScene () took 104 msecs AddData (BrainAtlas2012.mrb) took 30087 msecs ModifyNode (vtkMRMLScalarVolumeNode1) took 4 msecs ModifyNode (vtkMRMLScalarVolumeNode1) took 3 msecs ModifyNode (vtkMRMLScalarVolumeNode2) took 25 msecs ModifyNode (vtkMRMLScalarVolumeNode3) took 16 msecs ModifyNode (vtkMRMLScalarVolumeDisplayNode2) took 22 msecs ModifyNode (vtkMRMLModelHierarchyNode2) took 10 msecs ModifyNode (vtkMRMLModelNode4) took 0 msecs ModifyNode (vtkMRMLModelDisplayNode5) took 11 msecs ModifyNode (vtkMRMLModelHierarchyNode3) took 10 msecs ModifyNode (vtkMRMLModelStorageNode1) took 4 msecs AddNode (vtkMRMLModelNode302) took 31 msecs Layout (3) took 66 msecs Layout (2) took 20 msecs Layout (3) took 53 msecs Layout (2) took 19 msecs RestoreSceneView (vtkMRMLSceneViewNode15) took 2730 msecs RestoreSceneView (vtkMRMLSceneViewNode15) took 1556 msecs git-svn-id: http://svn.slicer.org/Slicer4/trunk@21582 3bd1e089-480b-0410-8dfb-8563597acbee |
||
mod - SuperBuild/External_CTK.cmake | Diff File | ||
Slicer: 2145-support-for-installing-extension-from-file 2bcb4e76 2013-01-10 12:51:15 Details Diff |
ENH: Speed-up vtkMRMLScene references Issue 0002642 Example of performance on a MacBookPro laptop: AddData (BrainAtlas2012.mrb) took 30911 msecs CloseScene () took 21943 msecs CloseScene () took 76 msecs AddData (BrainAtlas2012.mrb) took 29535 msecs ModifyNode (vtkMRMLScalarVolumeNode1) took 4 msecs ModifyNode (vtkMRMLScalarVolumeNode2) took 25 msecs ModifyNode (vtkMRMLScalarVolumeDisplayNode2) took 23 msecs ModifyNode (vtkMRMLScalarVolumeNode3) took 15 msecs ModifyNode (vtkMRMLModelHierarchyNode2) took 10 msecs ModifyNode (vtkMRMLModelNode4) took 0 msecs ModifyNode (vtkMRMLModelDisplayNode5) took 11 msecs ModifyNode (vtkMRMLModelHierarchyNode3) took 11 msecs ModifyNode (vtkMRMLModelStorageNode1) took 5 msecs AddNode (vtkMRMLModelNode302) took 31 msecs Layout (3) took 9 msecs Layout (2) took 27 msecs Layout (3) took 50 msecs RestoreSceneView (vtkMRMLSceneViewNode15) took 2701 msecs RestoreSceneView (vtkMRMLSceneViewNode15) took 1542 msecs git-svn-id: http://svn.slicer.org/Slicer4/trunk@21583 3bd1e089-480b-0410-8dfb-8563597acbee |
||
mod - Libs/MRML/Core/vtkMRMLScene.cxx | Diff File | ||
Slicer: 2145-support-for-installing-extension-from-file cf8212ba 2013-01-10 18:38:02 Details Diff |
ENH: Speed-up qMRMLSceneModel node observation Don't listen to nodes that are filtered out by the sort&filter proxy model. Issue 0002642 Example of performance on MacBookPro laptop: AddData (BrainAtlas2012.mrb) took 22741 msecs -10000msecs CloseScene () took 11827 msecs -10000msecs AddData (BrainAtlas2012.mrb) took 20909 msecs ModifyNode (vtkMRMLScalarVolumeNode1) took 4 msecs ModifyNode (vtkMRMLScalarVolumeNode2) took 24 msecs ModifyNode (vtkMRMLScalarVolumeDisplayNode2) took 22 msecs ModifyNode (vtkMRMLScalarVolumeNode3) took 15 msecs ModifyNode (vtkMRMLModelHierarchyNode2) took 10 msecs ModifyNode (vtkMRMLModelNode4) took 0 msecs ModifyNode (vtkMRMLModelDisplayNode5) took 11 msecs ModifyNode (vtkMRMLModelHierarchyNode3) took 10 msecs ModifyNode (vtkMRMLModelStorageNode1) took 0 msecs AddNode (vtkMRMLModelNode302) took 20 msecs Layout (3) took 51 msecs Layout (2) took 24 msecs RestoreSceneView (vtkMRMLSceneViewNode15) took 865 msecs -1000msecs RestoreSceneView (vtkMRMLSceneViewNode15) took 622 msecs git-svn-id: http://svn.slicer.org/Slicer4/trunk@21586 3bd1e089-480b-0410-8dfb-8563597acbee |
||
mod - Libs/MRML/Widgets/Testing/qMRMLSceneModelTest.cxx | Diff File | ||
mod - Libs/MRML/Widgets/Testing/qMRMLTreeViewEventTranslatorPlayerTest1.cxx | Diff File | ||
mod - Libs/MRML/Widgets/qMRMLNodeComboBox.cxx | Diff File | ||
mod - Libs/MRML/Widgets/qMRMLSceneModel.cxx | Diff File | ||
mod - Libs/MRML/Widgets/qMRMLSceneModel.h | Diff File | ||
mod - Libs/MRML/Widgets/qMRMLSceneModel_p.h | Diff File | ||
mod - Libs/MRML/Widgets/qMRMLSortFilterHierarchyProxyModel.cxx | Diff File | ||
mod - Libs/MRML/Widgets/qMRMLSortFilterHierarchyProxyModel.h | Diff File | ||
mod - Libs/MRML/Widgets/qMRMLSortFilterProxyModel.cxx | Diff File | ||
mod - Libs/MRML/Widgets/qMRMLSortFilterProxyModel.h | Diff File | ||
mod - Libs/MRML/Widgets/qMRMLTreeView.cxx | Diff File | ||
mod - Libs/MRML/Widgets/qMRMLTreeView.h | Diff File | ||
mod - Modules/Loadable/Data/Resources/UI/qSlicerDataModule.ui | Diff File | ||
mod - Modules/Loadable/Models/Resources/UI/qSlicerModelsModule.ui | Diff File | ||
mod - Modules/Loadable/TractographyDisplay/Widgets/qMRMLSceneTractographyDisplayModel.cxx | Diff File | ||
mod - Modules/Loadable/Transforms/Resources/UI/qSlicerTransformsModule.ui | Diff File | ||
mod - SuperBuild/External_OpenIGTLinkIF.cmake | Diff File |
Date Modified | Username | Field | Change |
---|---|---|---|
2012-10-15 06:11 | finetjul | New Issue | |
2012-10-15 06:11 | finetjul | Status | new => assigned |
2012-10-15 06:11 | finetjul | Assigned To | => finetjul |
2012-10-29 08:18 | finetjul | Note Added: 0006845 | |
2012-10-29 09:15 | finetjul | Note Edited: 0006845 | |
2012-10-29 09:17 | finetjul | Note Added: 0006852 | |
2012-10-29 09:24 | finetjul | Note Added: 0006854 | |
2012-10-29 09:31 | finetjul | Note Edited: 0006854 | |
2012-10-29 12:52 | finetjul | Note Edited: 0006845 | |
2012-10-29 13:13 | finetjul | Note Edited: 0006845 | |
2012-10-29 13:16 | finetjul | Note Edited: 0006845 | |
2012-10-29 16:12 | finetjul | Note Edited: 0006854 | |
2012-12-13 15:09 | finetjul | Note Edited: 0006854 | |
2013-01-17 11:18 | finetjul | Description Updated | |
2013-01-17 11:19 | finetjul | Note Edited: 0006845 | |
2013-01-17 11:19 | finetjul | Note Edited: 0006852 | |
2013-01-17 11:19 | finetjul | Note Edited: 0006854 | |
2013-01-17 11:21 | finetjul | Note Added: 0007699 | |
2013-02-18 07:09 | finetjul | Note Added: 0007977 | |
2013-08-09 04:21 | finetjul | Target Version | Slicer 4.3.0 => Slicer 4.4.0 |
2013-09-30 05:41 | inorton | Relationship added | related to 0002810 |
2013-10-11 04:55 | finetjul | Note Added: 0010172 | |
2013-12-10 08:49 | finetjul | Note Added: 0010423 | |
2014-01-10 14:10 | finetjul | Note Added: 0010504 | |
2014-01-10 14:42 | finetjul | Note Edited: 0010504 | |
2014-01-10 15:11 | finetjul | Note Edited: 0010504 | |
2014-01-24 07:13 | finetjul | Note Added: 0010534 | |
2014-05-13 11:09 | jcfr | Note Added: 0011786 | |
2014-05-13 11:11 | jcfr | Target Version | Slicer 4.4.0 => Slicer 4.5.0-1 |
2014-05-13 12:50 | jcfr | Status | assigned => acknowledged |
2015-11-02 11:58 | jcfr | Target Version | Slicer 4.5.0-1 => Slicer 4.6.0 |
2016-10-12 15:12 | jcfr | Target Version | Slicer 4.6.0 => Slicer 4.7.0 |
2017-06-07 23:27 | finetjul | Changeset attached | => Slicer 2145-support-for-installing-extension-from-file cf8212ba |
2017-06-07 23:27 | finetjul | Changeset attached | => Slicer 2145-support-for-installing-extension-from-file 2bcb4e76 |
2017-06-07 23:27 | finetjul | Changeset attached | => Slicer 2145-support-for-installing-extension-from-file 92aefb88 |
2017-06-07 23:27 | finetjul | Changeset attached | => Slicer 2145-support-for-installing-extension-from-file 8a52eb38 |
2017-06-07 23:27 | finetjul | Changeset attached | => Slicer 2145-support-for-installing-extension-from-file 8fade71e |
2017-06-07 23:27 | finetjul | Changeset attached | => Slicer 2145-support-for-installing-extension-from-file 9ecca3f0 |
2017-09-27 10:56 | lassoan | Target Version | Slicer 4.7.0 => backlog |