Bug 201469 - [results] Improve performance results generation
Summary: [results] Improve performance results generation
Status: RESOLVED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: Releng (show other bugs)
Version: 3.3   Edit
Hardware: PC Windows XP
: P3 major (vote)
Target Milestone: 3.3.2   Edit
Assignee: Frederic Fusier CLA
QA Contact:
URL:
Whiteboard:
Keywords: performance, test
Depends on:
Blocks: 198957
  Show dependency tree
 
Reported: 2007-08-28 15:32 EDT by Frederic Fusier CLA
Modified: 2008-09-19 04:26 EDT (History)
4 users (show)

See Also:


Attachments
Proposed patch (54.06 KB, application/octet-stream)
2007-08-29 06:36 EDT, Frederic Fusier CLA
no flags Details
Proposed patch without fix for bug 186549 (278.16 KB, patch)
2007-08-31 11:24 EDT, Frederic Fusier CLA
no flags Details | Diff
New patch without fix for bug 186549 (278.81 KB, patch)
2007-08-31 13:04 EDT, Frederic Fusier CLA
no flags Details | Diff
Ultimate patch (version 7) (53.79 KB, application/octet-stream)
2007-10-19 10:16 EDT, Frederic Fusier CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Frederic Fusier CLA 2007-08-28 15:32:06 EDT
Generation of performance tests results made many queries to database to get values which can be improved by introducing a better model to get and store database information. Currently all data get from database are stored on local maps and the information is asked again for each generated files: fingerprints, status table, graphs and raw data.

The idea would be to have results objects used to read and store data at the beginning of the generation and provide the necessary values while building each needed files.
Comment 1 Frederic Fusier CLA 2007-08-28 15:37:15 EDT
Increase severity to major because this improvement will also make the maintenance and change of this code easier and safer (hopefully)...
Comment 2 Frederic Fusier CLA 2007-08-29 06:36:52 EDT
Created attachment 77232 [details]
Proposed patch

The patch was too big to be attached as patch file (282Kb), so it has been zipped.

Short summary of what this patch do:
1) Introduce a new model in org.eclipse.test.performance project for results
2) Rewrite classes generating files in org.eclipse.test.performance.ui project
   to use the new results model and avoid unnecessary multiple database queries
3) Add comments in the code to make it easier to maintain and evolve
4) Include fixes for bug 186549 and bug 198957
Comment 3 Frederic Fusier CLA 2007-08-29 06:38:57 EDT
The first interesting effect of the proposed change is that it speeds up generation. The first measures I did while playing with was 6 times faster, but it was a little time ago and I'll redo some measures to be a bit more precise...
Comment 4 Frederic Fusier CLA 2007-08-29 08:01:59 EDT
I got the time with proposed patch; it took 46 minutes to generate the perf results. With current org.eclipse.test.performance.ui version, generate the same results took more than 150 minutes (2h30).

So, in fact it's less than I initially thought: more than 3 times faster... :-(
But I think it's a good starting point... :-)
Comment 5 Frederic Fusier CLA 2007-08-31 11:24:54 EDT
Created attachment 77470 [details]
Proposed patch without fix for bug 186549

Finally there were so many ways to fix bug 186549 that I preferred put it out of the patch for this bug. This new patch also fixes some minor issues I discovered since the previous posted patch...

Note that this new patch still fixes bug 198957.
Comment 6 Frederic Fusier CLA 2007-08-31 11:34:27 EDT
Sorry, last patch still fixes bug 186549!

I was confused by another remaining issue: how to display fingerprint for test with no error ([n/a]: when only one measure was done)...
Comment 7 Frederic Fusier CLA 2007-08-31 11:58:13 EDT
(In reply to comment #6)
> Sorry, last patch still fixes bug 186549!
> 
> I was confused by another remaining issue: how to display fingerprint for test
> with no error ([n/a]: when only one measure was done)...
> 
I've opened bug 201920 to address this issue.
Comment 8 Frederic Fusier CLA 2007-08-31 13:04:12 EDT
Created attachment 77485 [details]
New patch without fix for bug 186549

I think I need some vacations as the previous patch finally didn't not fix bug 186549!!! So, I re-run generation on this new one and I confirm that bug 186549 will not be fixed while fixing this bug!

Definitely sorry for all this confusion... :-(

However, I has to attach a new patch because I discovered some minor regressions introduced while splitting fixes... This is now OK and this patch is the latest ultimate version ready to be released!
Comment 9 Frederic Fusier CLA 2007-10-19 10:16:34 EDT
Created attachment 80768 [details]
Ultimate patch (version 7)

Previous patch + incremental generation. To avoid asking all data from the beginning to the releng database, already generated builds numbers are stored locally if -dataDir argument is specified in command line.

This will make time to generate approximately the same whenever the generation is done in the eclipse cycle although time increased exponentially at the end of the release with previous version...
Comment 10 Frederic Fusier CLA 2007-10-19 10:48:20 EDT
Released for 3.4M3 in HEAD stream.
Comment 11 Frederic Fusier CLA 2007-10-19 12:16:09 EDT
Here are times I got on my test box (Windows Vista - Intel Dual Core 6600 (2.4GHz) - 3Go RAM) to generate results for N20071015-0010:
 - 80 minutes before patch
 - <10 minutes after patch without using incremental generation
 - <6 minutes after patch using results of N20071004-0010

Note that I was also able to generate results for I20071016-0800 from remote releng database using N20071015-0010 results in around 45 minutes. I was never able to generate results from remote database before as it took too much time...
Comment 12 Frederic Fusier CLA 2007-10-24 05:29:52 EDT
Patch released in R3_3_maintenance stream