processing / processing/processing4
Improve startup performance
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 494
- Forks
- 183
- Avg merge
- 4h 39m
- Merged PRs (30d)
- 3
Description
PDE startup is slow because much of the initialization work happens on the main thread, blocking the application from becoming responsive.
PR #1300 explored moving several initialization tasks to background threads and demonstrated that this can significantly improve startup performance. The PR was ultimately closed in favor of revisiting startup concurrency with a more centralized approach, rather than introducing multiple ad-hoc threads in startup code.
Relevant quotes:
@tychedelia: “Have you considered using an
ExecutorServiceinstead of manually creating all the threads? That could provide better control or allow thread reuse particularly for tasks that are small.”
@catilac: “If there is a thread pool manager we can use to manage threads we should use that. I'd prefer we not introduce the use of low-level concurrency primitives on the app startup code paths.”
I'm opening this issue to capture these insights, so startup performance work can be revisited later.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing PR #1300 and the quoted discussion about ExecutorService and a shared thread-pool manager. Identify the centralized startup-concurrency approach to pursue and define which initialization tasks can move off the main thread. Done means startup becomes responsive without introducing ad-hoc threads, with performance evidence for the change.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- desktop, performance
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100