processing / processing/processing4

Improve startup performance

Open
#1,429 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

paused
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 ExecutorService instead 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.