Skip to content

Conversation

@Stefterv
Copy link
Collaborator

Moved several initialization tasks to background threads for improved startup performance and responsiveness, including tool, font, UI, and suggestion generator setup. Deferred some tool initialization until first use, added caching for SVG rendering, and simplified string loading in PApplet. Also made minor changes to library list and variable inspector initialization.

  • Find a way to display the splash screen optionally as Preferences will not yet be initialised.
Screen.Recording.2025-10-22.at.17.12.21.mov

Moved several initialization tasks to background threads for improved startup performance and responsiveness, including tool, font, UI, and suggestion generator setup. Deferred some tool initialization until first use, added caching for SVG rendering, and simplified string loading in PApplet. Also made minor changes to library list and variable inspector initialization.
@Stefterv Stefterv requested a review from catilac October 22, 2025 15:15
@catilac
Copy link
Collaborator

catilac commented Oct 24, 2025

Cool! How much did performance improve? Also what is going on with the preferences not being initialized meaning adding a new settings thing.

Do any of these threads need to be joined at some point? Or it's fine for all of them to just start and end whenever?

@Stefterv
Copy link
Collaborator Author

Performance went from 1500ms to 350ms startup time, so now the welcome screen itself is actually the biggest bottleneck in starting.

The Preferences class is not necessarily initialised when starting the Welcome screen, we could either initialise it early (but I think that might cause other issues) or we could use Java's Preferences maybe instead.

As for joining the threads, I wanted to look into this further, so far in my testing the PDE starts just fine and I haven't noticed any issues, but that's only tested on one devices on one os, so not particularly extensive (:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants