Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 271323 - improve shared object API performance
Summary: improve shared object API performance
Status: RESOLVED FIXED
Alias: None
Product: ECF
Classification: RT
Component: ecf.providers (show other bugs)
Version: unspecified   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: ecf.core-inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-04-06 10:46 EDT by Scott Lewis CLA
Modified: 2009-04-08 12:25 EDT (History)
2 users (show)

See Also:


Attachments
Removed a few trace messages in performace critical parts of the code (3.30 KB, patch)
2009-04-06 11:21 EDT, Florian Hackenberger CLA
slewis: iplog+
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Scott Lewis CLA 2009-04-06 10:46:22 EDT
The shared object API has some unnecessary synchronization and tracing that significantly reduced performance.  These should be eliminated.
Comment 1 Florian Hackenberger CLA 2009-04-06 11:21:02 EDT
Created attachment 131007 [details]
Removed a few trace messages in performace critical parts of the code
Comment 2 Florian Hackenberger CLA 2009-04-06 11:24:53 EDT
The patch removes a few trace messages in performance critical parts of the code (sending/receiving messages). In ADDITION we should remove the synchronized keyword from the SimpleFIFOQueue#isStopped() method. If we want to prevent the  (harmless) race condition under any circumstances we should change the declaration of 'stopped' to Boolean and synchronize on that object.
Comment 3 Scott Lewis CLA 2009-04-06 12:03:30 EDT
Will apply asap
Comment 4 Scott Lewis CLA 2009-04-06 19:23:16 EDT
Comment on attachment 131007 [details]
Removed a few trace messages in performace critical parts of the code

Applied and released to HEAD these trace removals.  Also removed synchronized keyword from SimpleFIFOQueue.isStopped().
Comment 5 Scott Lewis CLA 2009-04-06 19:25:02 EDT
Thanks Florian.  Applied the trace removals and the SimpleFIFOQueue.isStopped changes. Resolving this bug.  If you wish to reopen and attach other changes based upon profiling please do so.



Comment 6 Markus Kuppe CLA 2009-04-08 04:45:59 EDT
Doesn't it make sense to move SimpleFIFOQueue into o.e.ecf.util in the core bundle? org.eclipse.ecf.internal.provider.jmdns.SimpleFIFOQueue is an exact copy of org.eclipse.ecf.core.sharedobject.util.SimpleFIFOQueue
Comment 7 Scott Lewis CLA 2009-04-08 10:57:41 EDT
(In reply to comment #6)
> Doesn't it make sense to move SimpleFIFOQueue into o.e.ecf.util in the core
> bundle? org.eclipse.ecf.internal.provider.jmdns.SimpleFIFOQueue is an exact
> copy of org.eclipse.ecf.core.sharedobject.util.SimpleFIFOQueue
> 

I suppose you are right about moving SimpleFIFOQueue, but for Galileo our core and filetransfer bundles are now under API freeze (since they are added to SDK as part of p2).  Maybe we can fight the fight to get it into 3.1 (since it's just a move), but I don't think we can get this changed for Galileo (based upon how strict the SDK/platform folks have been about even trivial, unused API changes...e.g. see bug #269395.

Comment 8 Markus Kuppe CLA 2009-04-08 11:30:23 EDT
Hmm, maybe it is time to branch off 3.0 to let development continue that does not target Galileo.
Comment 9 Scott Lewis CLA 2009-04-08 12:25:42 EDT
(In reply to comment #8)
> Hmm, maybe it is time to branch off 3.0 to let development continue that does
> not target Galileo.
> 

Given the maintenance difficulty of maintaining two active branches with CVS, I would like to wait a little longer (approx beg of May).

In a better world (i.e. not CVS) this would be fine (looking forward to git), but our releng and maintenance resources are already sort of stretched with Galileo requirements.