SlicerGitSVNArchive icon indicating copy to clipboard operation
SlicerGitSVNArchive copied to clipboard

[PREVIEW-WIP] PERF: Improve startup time by 8% with lazy loading of wrapped libraries

Open jcfr opened this issue 9 years ago • 2 comments
trafficstars

*** WORK IN PROGRESS: For now, you have to make sure SlicerApp-real and Slicer launcher are built to ensure the successful generation of the json files ***

Startup time reduced from 3.8s to 3.5s with a "cold cache" and from 2.7s to 2.38s with a "warm cache".

For each logic/mrml/dm/widgets python modules, a json files listing the associated attributes is generated. Then, when the application is initialized, the "slicer" module is created as a "lazy" module with the attributes associated with logic/mrml/dm/widgets set as "not loaded".

Finally, as soon as an attribute not yet loaded is accessed, the specialized __getattribute__ loads the associated python module and update the module dictionary.

The "lazy" module has been adapted from "itkLazy.py"

Results have been gathered on Ubuntu 15.10 on a workstation with the following specs: 64GB / M.2 PCIe NVMe SSD / Quad Core 3.80GHz

jcfr avatar May 31 '16 07:05 jcfr

Note: Timing performance obtained after applying the fixes associated with #508

jcfr avatar May 31 '16 07:05 jcfr

Today on the tcon it would help if we could discuss how to run these performance tests on other platforms. Slicer on macs has always been terribly slow to start so I suspect the tune ups will have even bigger impact there. Also the Instruments tool on mac is good for finding hot spots in the code.

On Tue, May 31, 2016 at 3:30 AM, Jean-Christophe Fillion-Robin < [email protected]> wrote:

Note: Timing performance obtained after applying the fixes associated with #508 https://github.com/Slicer/Slicer/pull/508

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/Slicer/Slicer/pull/509#issuecomment-222612700, or mute the thread https://github.com/notifications/unsubscribe/AAHsfc-YH5TSmosRVSon3vIdfsqs1uJcks5qG-OIgaJpZM4IqP4t .

pieper avatar May 31 '16 11:05 pieper