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.


Hi Oleg -

I tried to take a look at your patch over the weekend but couldn't get all of it as you attached some binary files. Can you resend the patch with the zip files attached separately? (The Eclipse patching
tool doesn't handle binaries).

Your idea is correct - in fact, the best thing to do is to get rid of all the timeouts in the JobManager and replace them with wait()-notify().

Regards,
Bogdan



"Krasilnikov, Oleg" <oleg.krasilnikov@xxxxxxxxx>
Sent by: cdt-dev-bounces@xxxxxxxxxxx

12/22/2005 11:19 AM

Please respond to
"CDT General developers list." <cdt-dev@xxxxxxxxxxx>

To
"CDT General developers list." <cdt-dev@xxxxxxxxxxx>
cc
"Voronin, Mikhail" <Mikhail.Voronin@xxxxxxxxx>, "Sennikovsky, Mikhail" <mikhail.sennikovsky@xxxxxxxxx>
Subject
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
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/cdt-dev

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


Back to the top