Project: Eclipse_Platform_UI
Bug 187890 [Progress] [Decorators] Systems with many jobs can delay decoration >10 seconds
Reported: 2007-05-18 15:29:11 | Status: verified fixed

3.3 M6 Certain decorations on resources take a long time to show up in our product. People have reported them taking >10 seconds, and occasionally blocking JDT error/warning ticks as well. The slowness is due to some interactions between how the Workbench's decoration scheduler schedules UI notifications of available decorations, and how the the job manager assigns default delays to jobs. Basically, when a bunch of decorations are available, the notification job notifies all listeners (usually the label providers in the different views), but does this piecemeal, rescheduling itself between each listener to avoid hogging the CPU. But the job scheduler delays DECORATE priority jobs by 100ms times the number of running jobs. So if you have 5 running jobs and 10 listeners, it can take 5 seconds to get to the last listener. And that's on a good day. It's not uncommon to have twice that many listeners (one of our views uses many). And there can be many jobs running in our product too, in addition to the usual ones in the Eclipse IDE. Back link to our bug DB: #20199

Files changed in fix:
bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/decorators/DecorationScheduler.java