Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [cdt-dev] CDT performance: JobManager delays.

I have attached a patch which adds simple indexing performance test to
org.eclipse.core.tests.
This test can be used, in particular, to check a gain of modification
described below.
-----------------------------------
With best regards, Oleg Krasilnikov
Software designer, Eclipse team. 
Intel corp.
+7 8312 162 444 ext. 2587 
(Russia, Nizhny Novgorod)

 
-----Original Message-----
From: cdt-dev-bounces@xxxxxxxxxxx [mailto:cdt-dev-bounces@xxxxxxxxxxx]
On Behalf Of Krasilnikov, Oleg
Sent: Thursday, December 22, 2005 7:13 PM
To: CDT General developers list.
Cc: Voronin, Mikhail; Sennikovsky, Mikhail
Subject: [cdt-dev] CDT performance: JobManager delays.
Importance: High

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)
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/cdt-dev

Attachment: cdt.core.tests.patch
Description: cdt.core.tests.patch


Back to the top