Skip to main content

[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)


Back to the top