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.

Bogdan,
 
Thank you for comments. It was my mistake (with zip's in a patch).
Now I have added zip files as separate attachments.
 
But, really, these archives are not directly related to proposed fix.
 
In fact, I have proposed 2 independent changes for bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=69078
 
1. Delay elimination patch (https://bugs.eclipse.org/bugs/attachment.cgi?id=32196)
 
2. Test case with necessary sample data :
        patch: https://bugs.eclipse.org/bugs/attachment.cgi?id=32830
        zip files: https://bugs.eclipse.org/bugs/attachment.cgi?id=32831
                     https://bugs.eclipse.org/bugs/attachment.cgi?id=32832
 
    This test does not affect real CDT functionality. Moreover, it is not included to CDT test suite,
    to avoid unexpected time losses duriung non-regression testing. But, I think it will be useful to
    have some formalized mean for performance measurement...
 
----------------------------------
With best regards, Oleg Krasilnikov
Software designer, Eclipse team.
Intel corp.
+7 8312 162 444 ext. 2587
(Russia, Nizhny Novgorod)


From: cdt-dev-bounces@xxxxxxxxxxx [mailto:cdt-dev-bounces@xxxxxxxxxxx] On Behalf Of Bogdan Gheorghe
Sent: Monday, January 09, 2006 5:28 PM
To: CDT General developers list.
Subject: 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


Back to the top