Skip to content

Add a Build Monitor view showing where each build spends its time - #2896

Open
vogella wants to merge 1 commit into
eclipse-platform:masterfrom
vogella:build-monitor-view
Open

Add a Build Monitor view showing where each build spends its time#2896
vogella wants to merge 1 commit into
eclipse-platform:masterfrom
vogella:build-monitor-view

Conversation

@vogella

@vogella vogella commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Finding the builder that makes a build slow currently means starting Eclipse with -debug and reading the performance log. This adds an org.eclipse.ui.buildmonitor bundle with a Build Monitor view that records every build and lets you drill from the build into its projects and then into the builders that ran on them, or the other way round with the "By builder" switch. Each row shows the run count, the time and its share of the build, and the build row also shows the wall clock time, so the part of a build that is not spent inside builders is visible at a glance. Tracing is switched on while the view is open and the previous debug options are restored when it closes, so no restart is needed and nothing is written to the performance log.

The interesting part is how the time is attributed. PerformanceStatsProcessor batches its listener callbacks with a two second delay, so events for a short build arrive after it has finished and cannot be assigned to it. Instead each build is bracketed by PRE_BUILD and POST_BUILD and the per builder counters of PerformanceStats are diffed between the two; those counters are updated synchronously while the builder returns, so the numbers are exact and the view refreshes once per build rather than once per builder run.

The bundle is not yet listed in the platform feature, that needs a follow-up in eclipse.platform.releng.aggregator before it ships in the SDK. The runtime switchable tracing it depends on landed with #2802.

@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Test Results

    54 files  ±0      54 suites  ±0   59m 48s ⏱️ +13s
 4 770 tests ±0   4 748 ✅ ±0   22 💤 ±0  0 ❌ ±0 
12 201 runs  ±0  12 048 ✅ ±0  153 💤 ±0  0 ❌ ±0 

Results for commit 4a80ebd. ± Comparison against base commit 09da997.

♻️ This comment has been updated with latest results.

@vogella
vogella force-pushed the build-monitor-view branch 2 times, most recently from f1e568c to 26be815 Compare September 10, 2026 17:24
@vogella vogella changed the title [WIP] Add a Build Monitor view showing build time per builder and project Add a Build Monitor view showing where each build spends its time Sep 10, 2026
@vogella
vogella marked this pull request as ready for review September 10, 2026 19:03
Finding the builder that makes a build slow currently means starting Eclipse
with -debug and reading the performance log. This adds an
org.eclipse.ui.buildmonitor bundle with a Build Monitor view that records every
build and breaks it down, grouped either by project or by builder, with the run
count, the time and the share of the build. Tracing is switched on while the
view is open and the previous debug options are restored when it closes, so no
restart is needed.

Each build is bracketed by PRE_BUILD and POST_BUILD and the per builder counters
of PerformanceStats are diffed between the two. Those counters are updated while
the builder returns, unlike the listener callbacks, which PerformanceStatsProcessor
batches with a two second delay and which therefore cannot be attributed to the
build that caused them. The build row also carries the wall clock time of the
whole build, so the part that is not spent inside builders is visible.

Assisted-by: multiple AI agents and layers of automated tooling 🤖
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.

1 participant