[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[cdt-dev] CDT performance: JobManager delays.
|
Hi all.
Currently, JobManager.run() (see code below) waits 50 ms after _every_
background job finished.
May be it's reasonable in some cases (allow concurrent processes to
run), but during indexation
we are spending this time after each separate file processed !
When I have commented this delay (as shown below), indexing process has
finished much faster.
Saved time depends of project, but it is significant in any case:
~25% on "C" Midninght Commander source.
~45-50% on "C++" Mozilla source
It seems to be we can improve indexing performance either by removing
this delay at all,
or by decreasing waiting time as possible.
Comments ?
------------------------------------------------------------------------
----------
package org.eclipse.cdt.internal.core.search.processing;
...
public abstract class JobManager implements Runnable {
...
public void run() {
...
moveToNextJob();
// if (this.awaitingClients == 0) {
// Thread.sleep(50);
// }
...
------------------------------------------------------------------------
--------
Some comments:
- indexing of each translation unit is separate background task;
- "awaitingClients" variable is never changed during indexing.
It's modified only by "performConcurrentJob()", but this method
is not involved to indexing process.
-----------------------------------
With best regards, Oleg Krasilnikov
Software designer, Eclipse team.
Intel corp.
+7 8312 162 444 ext. 2587
(Russia, Nizhny Novgorod)