Huge startup improvement in 1.17!


#1

I was thrilled to fire the latest beta up and see some really astonishing startup improvement, so a huge thank’you to all of you Atom devs who made it possible.

Will snapshotting be used for third party packages too in the future? I was thinking in particular to those packages that just everybody use but have a big performance cost, like linter.


#2

Thanks for your kind words. It’s always encouraging to hear positive feedback.

The blog post we’re publishing soon should clarify this, but at a high level, the primary obstacle is the fact that you can only have a single snapshot for the entire application. Also, the environment in which snapshots are generated doesn’t have access to browser globals or Node APIs, meaning some care needs to be taken to generate them. It’s not something we could just run automatically on all packages.

No promises about shipping this any time soon, but what might be possible would be the following: Allow package authors to specify a snapshot script for their package. This would be generated via a tool like electron-link that concatenates scripts together. Then we could expose some sort of command that would re-run the snapshot phase of the build process, but include snapshot scripts from third party packages. This snapshot could then be stored into the application bundle.

Making this work smoothly across all environments and machine configurations would probably be pretty challenging, but in theory it should be possible. It could even be something we ran in the background when we detected packages with snapshot scripts.

For now, however, I think it’s more fruitful for us to focus on reducing the overhead of Atom itself and the bundled packages as much as possible.


#3

Thank’you @nathansobo for the details, much appreciated :smile:
I look forward to the blog post!


#4

Btw, linter should be much less of an impact on startup performance once this PR gets published in the next release. Numbers for a completely clean profile are posted in that PR, but in my regular profile the boost is even more dramatic.

I’m also working on bringing the same benefits to many of the providers, the top 4 offenders that I know of are already fixed :wink:.


#5

@Arcanemagus that’s some really great news too, thank’you for sharing!