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 |