Bug 89263 - Investigate BenchMiscWorkspace#testNoOp
Summary: Investigate BenchMiscWorkspace#testNoOp
Status: RESOLVED INVALID
Alias: None
Product: Platform
Classification: Eclipse Project
Component: Resources (show other bugs)
Version: 3.1   Edit
Hardware: PC Windows 2000
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: John Arthorne CLA
QA Contact:
URL:
Whiteboard:
Keywords: performance
Depends on:
Blocks:
 
Reported: 2005-03-28 14:35 EST by John Arthorne CLA
Modified: 2007-03-29 09:52 EDT (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description John Arthorne CLA 2005-03-28 14:35:10 EST
This test consistently ran in the 7-8 second range up to and including build
I20050104.  It then made a drastic jump at I20050111 and now runs in the 11-12
second range.  This consistent pattern suggests a real regression. Investigate.
Comment 1 John Arthorne CLA 2005-03-29 17:21:37 EST
The only change I can find is WorkerPool.java revision 1.46 added two calls to
synchronized methods in WorkerPool.sleep(). This was to fix a serious bug caused
by reentrant calls to Job.schedule (bug 82146).  I'll investigate if this might
be the cause, and see if there is anything that can be done about it.  Note that
the test case is to run a "no-op" workspace operation, so it's not out of the
question that a small change could introduce a major regression.  It's also not
clear if this is a significant performance defect. If I run the test a thousand
times, the average time per iteration is 0.02 milliseconds (with I20050329).
Comment 2 Mike Wilson CLA 2005-03-29 19:10:48 EST
Note: 20 microseconds for a no-op isn't actually very good.
Comment 3 John Arthorne CLA 2005-04-01 10:37:02 EST
I examined all the changes in core and core test projects between these two
builds, and found nothing relevant.  Reverting the WorkerPool change described
in comment #1 made no difference.

Looking more closely at the test results, I see the regression is in wall-clock
time, but the CPU time is not significantly different.  It's possible that
another background job running from a previous test is delaying this test from
starting.  The "no-op" operation grabs a lock on the workspace root, so any job
running on the workspace would block it.  I've made some changes to the test to
run a single no-op operation, and then waiting for background autobuild, before
starting the timer for the body of the test.  This should eliminate the
influence of any other background job on this test.  I didn't touch the body of
the test between the timer start and stop, so the results should be comparable
to previous runs.
Comment 4 John Arthorne CLA 2007-03-29 09:52:46 EDT
I wasn't able to find a performance problem here.