Import 2017-06-07 23:51:09: master 9cf170a4

Author Committer Branch Timestamp Parent
jcfr jcfr master 2016-05-21 06:13:32 master e4c49494
Affected Issues 0004198: Welcome: The module impact startup times more than any other module
Changeset

PERF: Reduce startup time by lazily loading Welcome module HTML. Fixes 0004198

This commit reduces startup time by 0000020:0000030% (5.5s -> 3.9s).

Results obtained for a release build on Ubuntu 15.10, 64GB/M.2 PCIe
NVMe SSD/Quad Core 3.80GHz.

While loading the Welcome module is still slower (~10ms), the improvement
is significant.

Details Stats:

Notes: MeasureStartupTimes.py has been locally modified to avoid generating
Modules.json. Modules.json has been updated to list only 4 modules.

$ ~/Projects/Slicer/Applications/SlicerApp/Testing/Python/MeasureStartupTimes.py --excluding-one-module -n5 ./Slicer

[1/4]
Slicer --no-splash --exit-after-startup --testing --modules-to-ignore EventBroker
1/5: 3.81s
Slicer --no-splash --exit-after-startup --testing --modules-to-ignore EventBroker
2/5: 3.81s
Slicer --no-splash --exit-after-startup --testing --modules-to-ignore EventBroker
3/5: 3.79s
Slicer --no-splash --exit-after-startup --testing --modules-to-ignore EventBroker
4/5: 3.82s
Slicer --no-splash --exit-after-startup --testing --modules-to-ignore EventBroker
5/5: 3.84s
Average: 3.81s

[2/4]
Slicer --no-splash --exit-after-startup --testing --modules-to-ignore GradientAnisotropicDiffusion
1/5: 3.84s
Slicer --no-splash --exit-after-startup --testing --modules-to-ignore GradientAnisotropicDiffusion
2/5: 3.83s
Slicer --no-splash --exit-after-startup --testing --modules-to-ignore GradientAnisotropicDiffusion
3/5: 3.83s
Slicer --no-splash --exit-after-startup --testing --modules-to-ignore GradientAnisotropicDiffusion
4/5: 3.75s
Slicer --no-splash --exit-after-startup --testing --modules-to-ignore GradientAnisotropicDiffusion
5/5: 3.85s
Average: 3.82s

[3/4]
Slicer --no-splash --exit-after-startup --testing --modules-to-ignore Welcome
1/5: 3.70s
Slicer --no-splash --exit-after-startup --testing --modules-to-ignore Welcome
2/5: 3.75s
Slicer --no-splash --exit-after-startup --testing --modules-to-ignore Welcome
3/5: 3.73s
Slicer --no-splash --exit-after-startup --testing --modules-to-ignore Welcome
4/5: 3.76s
Slicer --no-splash --exit-after-startup --testing --modules-to-ignore Welcome
5/5: 3.68s
Average: 3.72s

[4/4]
Slicer --no-splash --exit-after-startup --testing --modules-to-ignore CompareVolumes
1/5: 3.78s
Slicer --no-splash --exit-after-startup --testing --modules-to-ignore CompareVolumes
2/5: 3.78s
Slicer --no-splash --exit-after-startup --testing --modules-to-ignore CompareVolumes
3/5: 3.80s
Slicer --no-splash --exit-after-startup --testing --modules-to-ignore CompareVolumes
4/5: 3.82s
Slicer --no-splash --exit-after-startup --testing --modules-to-ignore CompareVolumes
5/5: 3.76s
Average: 3.79s

git-svn-id: http://svn.slicer.org/Slicer4/trunk@25104 3bd1e089-480b-0410-8dfb-8563597acbee

mod - Modules/Loadable/SlicerWelcome/Resources/UI/qSlicerWelcomeModuleWidget.ui Diff File
mod - Modules/Loadable/SlicerWelcome/qSlicerWelcomeModuleWidget.cxx Diff File
mod - Modules/Loadable/SlicerWelcome/qSlicerWelcomeModuleWidget.h Diff File