Hello
I am developing a custom Slicer extension that bundles many specialized tools & modules for a specific medical imaging workflow. While the extension works well once loaded; the startup time of Slicer has increased noticeably especially on systems with slower disks / limited RAM.
I am looking for ways to reduce this load time without removing key features from the extension.
I have considered breaking the extension into smaller, on-demand modules but I am not sure of the best way to structure that within the Slicer extension framework. Another idea is to lazy-load certain resources (icons, data files, Python scripts) only when a module is opened for the first time.
If anyone has tried similar optimizations, tips or example repositories would be great. A good starting point for those interested in this topic might be the Slicer Developer Guide on Extensions, but I am looking for more practical, performance-focused advice based on real-world use cases. While working on these optimizations; I found what is java often linked with discussions about startup speed.
I’d like to hear from others who have worked on large extensions what patterns / optimizations helped you keep Slicer startup fast?
Thank you !!