Create Profiling Tool for Image Decoders
https://bugs.webkit.org/show_bug.cgi?id=103463
Summary Create Profiling Tool for Image Decoders
Brent Fulgham
Reported 2012-11-27 16:10:56 PST
This bug creates a simple profiling tool to assist in investigating various proposed improvements to the image decoders.
Attachments
Patch (40.75 KB, patch)
2012-11-27 16:23 PST, Brent Fulgham
no flags
Patch (19.14 KB, patch)
2012-11-27 16:43 PST, Brent Fulgham
no flags
Patch (15.78 KB, patch)
2012-11-27 22:19 PST, Brent Fulgham
no flags
Patch (33.55 KB, patch)
2012-11-28 10:37 PST, Brent Fulgham
no flags
Patch (28.79 KB, text/plain)
2012-11-28 10:46 PST, Brent Fulgham
no flags
Patch (26.29 KB, patch)
2012-11-28 10:53 PST, Brent Fulgham
no flags
Patch (26.49 KB, patch)
2012-11-28 12:48 PST, Brent Fulgham
no flags
Patch (26.60 KB, patch)
2012-11-28 14:07 PST, Brent Fulgham
no flags
Patch (35.54 KB, patch)
2012-11-29 11:30 PST, Brent Fulgham
no flags
Patch (28.27 KB, patch)
2012-11-29 12:09 PST, Brent Fulgham
no flags
Brent Fulgham
Comment 1 2012-11-27 16:23:22 PST
Brent Fulgham
Comment 2 2012-11-27 16:43:19 PST
Brent Fulgham
Comment 3 2012-11-27 16:45:11 PST
The bulk of the patch is a bunch of Windows cruft for building. This patch does not land a change to the main solution file, so no build changes are expected.
noel gordon
Comment 4 2012-11-27 19:05:13 PST
Comment on attachment 176369 [details] Patch Tools/ImageDecoderTest/win/ImageDecoderTest.vcproj doesn't look like a vcproj file.
Brent Fulgham
Comment 5 2012-11-27 22:19:37 PST
WebKit Review Bot
Comment 6 2012-11-27 22:24:17 PST
Attachment 176398 [details] did not pass style-queue: Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Tools/ChangeLog', u'Tools/ImageDecoderTest..." exit_code: 1 Tools/ImageDecoderTest/ImageDecoderPerf.cpp:29: Alphabetical sorting problem. [build/include_order] [4] Tools/ImageDecoderTest/config.h:35: Alphabetical sorting problem. [build/include_order] [4] Total errors found: 2 in 6 files If any of these errors are false positives, please file a bug against check-webkit-style.
Brent Fulgham
Comment 7 2012-11-28 10:37:33 PST
Brent Fulgham
Comment 8 2012-11-28 10:46:30 PST
Brent Fulgham
Comment 9 2012-11-28 10:50:12 PST
Comment on attachment 176517 [details] Patch Ugh. I hate these automatic mime-type additions.
WebKit Review Bot
Comment 10 2012-11-28 10:51:33 PST
Attachment 176517 [details] did not pass style-queue: Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/WebKit/win/ChangeLog', u'Source/Web..." exit_code: 1 Tools/ImageDecoderTest/ImageDecoderPerf.cpp:29: Alphabetical sorting problem. [build/include_order] [4] Total errors found: 1 in 16 files If any of these errors are false positives, please file a bug against check-webkit-style.
Brent Fulgham
Comment 11 2012-11-28 10:53:10 PST
WebKit Review Bot
Comment 12 2012-11-28 10:59:07 PST
Attachment 176522 [details] did not pass style-queue: Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/WebKit/win/ChangeLog', u'Source/Web..." exit_code: 1 Tools/ImageDecoderTest/ImageDecoderPerf.cpp:29: Alphabetical sorting problem. [build/include_order] [4] Total errors found: 1 in 16 files If any of these errors are false positives, please file a bug against check-webkit-style.
Build Bot
Comment 13 2012-11-28 12:02:38 PST
Brent Fulgham
Comment 14 2012-11-28 12:48:15 PST
Brent Fulgham
Comment 15 2012-11-28 12:48:54 PST
I think the build dependencies are now correct, and I've managed to satisfy the style checker.
Build Bot
Comment 16 2012-11-28 13:26:46 PST
Brent Fulgham
Comment 17 2012-11-28 14:07:37 PST
Build Bot
Comment 18 2012-11-28 14:32:49 PST
Brent Fulgham
Comment 19 2012-11-29 11:30:32 PST
Brent Fulgham
Comment 20 2012-11-29 12:09:04 PST
Jussi Kukkonen (jku)
Comment 21 2012-12-20 00:59:39 PST
Hi, thanks for this. I've used it in bug 105405 already. The results are already useful but I'm seeing some variance... mostly rare spikes in execution time: as an example 9 runs finished in 9.1-9.2 seconds each and then one run took >12 seconds (this was with 100 iterations). This sort of variance is enough to prevent real performance profiling... My first guess is IO blocking (even if I have an SSD so several seconds sounds like a lot). Would it make sense to add the timing inside the tool so the buffer loading could be discounted? Also, as an idea: if you start doing the timing in the tool you could filter any outliers (like X% furthest from the mean) in the tool, before calculating the final result. Further idea: Either output the variance as well or refuse to output a result if variance exceeds X. I guess doing either of those would only make sense after figuring out where the variance actually is. I'll see what I can do about that.
Viatcheslav Ostapenko
Comment 22 2012-12-20 09:06:21 PST
(In reply to comment #21) > Hi, thanks for this. I've used it in bug 105405 already. > > The results are already useful but I'm seeing some variance... mostly rare spikes in execution time: as an example 9 runs finished in 9.1-9.2 seconds each and then one run took >12 seconds (this was with 100 iterations). This sort of variance is enough to prevent real performance profiling... My first guess is IO blocking (even if I have an SSD so several seconds sounds like a lot). > > Would it make sense to add the timing inside the tool so the buffer loading could be discounted? > > Also, as an idea: if you start doing the timing in the tool you could filter any outliers (like X% furthest from the mean) in the tool, before calculating the final result. Further idea: Either output the variance as well or refuse to output a result if variance exceeds X. > > I guess doing either of those would only make sense after figuring out where the variance actually is. I'll see what I can do about that. 3 sec. for IO? That's too much. It would be interesting to see real/user/sys values from this run. If I run benchmark I try not to do anything in parallel on PC. Also, I used higher number of runs to minimize influence of IO and background processes. I've never seen variance bigger than 1%. qtwebkit has this repo http://gitorious.org/qtwebkit/performance/ with a lot of useful things for benchmarking that could be borrowed, but I don't think it should go in this patch. I would submit it as it is and start making improvements on top of it.
Brent Fulgham
Comment 23 2012-12-20 09:52:05 PST
(In reply to comment #21) > Hi, thanks for this. I've used it in bug 105405 already. > > The results are already useful but I'm seeing some variance... mostly rare spikes in execution time: as an example 9 runs finished in 9.1-9.2 seconds each and then one run took >12 seconds (this was with 100 iterations). This sort of variance is enough to prevent real performance profiling... My first guess is IO blocking (even if I have an SSD so several seconds sounds like a lot). > > Would it make sense to add the timing inside the tool so the buffer loading could be discounted? That's a good idea. I must admit that I don't use this in its raw form. I mainly use it inside of VTune to look at hotspots, so the I/O costs and so forth can easily be excluded.
Anders Carlsson
Comment 24 2014-02-05 11:03:44 PST
Comment on attachment 176779 [details] Patch Clearing review flag on patches from before 2014. If this patch is still relevant, please reset the r? flag.
Note You need to log in before you can comment on or make changes to this bug.