Work with me
Plugin performance audit
For teams that ship an IntelliJ Platform plugin and hear about UI freezes, typing lag or high CPU. One plugin, a fixed scope and a fixed price, with written results and patches.
How do you diagnose a performance bottleneck in an IntelliJ IDEA plugin?
You reproduce the plugin in a clean IDE for each version it supports, with freeze detection on and thread dumps captured on every freeze, then measure the time spent on the UI thread when settings pages, actions and tool windows open, cold and warm. A code review looks for the freeze patterns behind most reports in the JetBrains tracker: blocking read actions in background tasks without cancellation, file or network access on the UI thread, and waits on other threads while holding the read lock. Every finding is traced to the exact code that caused it; the audit reports what it finds and cannot prove no other freeze exists.
How do you prove a performance fix actually works?
Each proposed patch comes with a before and after measurement of the same action on the same IDE version, so the improvement is a number you can check, not a claim. Patches ship as a pull request or a diff with tests where the fix allows them, and it is the same method used on freezes in IntelliJ's own code reported to JetBrains with a root cause and a measurement.
Who it is for
- Plugin vendors whose reviews or support inbox mention freezes, "IDE is not responding", slow typing or high CPU.
- Companies with an internal plugin that their developers complain about.
- Teams preparing a release for a new IDE version who want the cost on the UI thread measured before users see it.
What the audit covers
- Reproduction. Your plugin runs in a clean IDE for each version you support, with freeze detection set to 500 ms and thread dumps captured on every freeze.
- UI thread measurements. Time spent on the UI thread when your settings page opens, when your actions update, when your tool windows open and at startup, each measured cold and warm.
- Code review for freeze patterns. Blocking read actions in background tasks without cancellation, file or network access and process launches on the UI thread, and waits on other threads while holding the read lock. These patterns are behind many of the freeze reports in JetBrains' issue tracker.
- Your existing reports. Thread dumps or idea.log excerpts that users already sent you are traced to the code that caused them.
What you receive
- A written report: each finding with its measurement or stack trace, why it blocks and its priority.
- Proposed patches as a pull request or a diff, with tests where the fix allows them.
- Before and after measurements for every finding that gets a patch.
- One round of follow-up questions by email after delivery.
How it works
- You send the plugin build or access to the repository, the IDE versions you support and any freeze reports you have.
- Within 2 business days you receive the scope in writing: plugin, IDE versions, delivery date and price.
- 50% is paid when the work starts and 50% on delivery. Delivery is within 10 business days of the start, or 15 for an extended scope.
- The work is asynchronous: email and the pull request. A call is available if you prefer one.
Price
- USD 10,500, fixed, for one plugin and up to 3 IDE versions, delivered within 10 business days.
- USD 15,000, fixed, for an extended scope: more than 3 IDE versions, or a plugin with several background subsystems, language servers or external processes. Delivered within 15 business days.
- Paid by international bank transfer in USD, against an invoice.
Terms in short
- The patches are yours once the invoice is paid.
- Your code and your data stay confidential. Signing your NDA is fine.
- The audit reports what it finds and cannot promise that no other freeze exists. Liability is limited to the price paid.
Track record
- Freeze bugs in IntelliJ's own code, reported to JetBrains with the root cause, a measurement and a proposed fix, plus pull requests contributed to intellij-community: see JetBrains Platform tickets.
- Background ReadAction Freeze Companion, a plugin that flags the blocking read action pattern in your own code.
- 146 plugins in this catalog, each checked against the IDE versions it supports before release.
Start
- Email contact@gaphunterlabs.com with "Performance audit" in the subject, or use the contact page. Include the plugin name and the IDE versions you support.