Webkit and Browser Performance
* overview of what browsers current main focus is wrt speed
* quick intro on firefox
* quick intro on webkit
* quick intro on chromium
* discuss validation benchmarking tools
* goals
* existing benchmarks/
* need for development of benchmarks etc.
* pgo builds -> firefox devs announced first successful pgo build on i386 linux with gcc 4.4 -> 10% perf boost; toolchain development needed for arm
Blueprint information
- Status:
- Started
- Approver:
- Alexander Sack
- Priority:
- Medium
- Drafter:
- Paul Larson
- Direction:
- Needs approval
- Assignee:
- Paul Larson
- Definition:
- Approved
- Series goal:
- Accepted for maverick
- Implementation:
- Started
- Milestone target:
- ubuntu-10.10-beta
- Started by
- Paul Larson
- Completed by
Whiteboard
asac: dropped some unused template sections from the wiki spec/page.
asac: split up work in milestone chunks and targetted the full spec for beta. Feel free to shuffle work items as you wish.
[pwlars 29 Jul 10]: Sample code for measuring startup time here: lp:~pwlars/+junk/browser-benchmarking
[pwlars 18 Aug 10]: I've looked at the following benchmarks for javascript: Sunspider, Dromaeo, V8, and Peacekeeper. Of those, Peacekeeper and Sunspider look the most promising from an automation perspecive, so that is where I will focus my efforts.
[pwlars 25 Aug 10]: Added a script to run peacekeeper benchmark under either chromium or firefox, and extract the results at the end
Status:
[pwlars 05 Oct 10]: Complete aside from the page load performance tests, which are postponed until some issues around them can be worked out.
Sunspider: http://
Dromaeo: http://
V8: http://
Peacekeeper: http://
For discussion:
Firefox
* Currently a bit behind on performance?
* A lot of enthusiam in Mozilla about improving the ARM support
* New JavaScript backend (JaegerMonkey) has potential to bring some benefits, but not very far advanced - http://
* Well-established development and maintenance process
* Large, mature codebase may slow down evolution and improvement?
* Large user community and good plugin support (though availability of 3rd-party native plugins for ARM is more limited)
WebKit
* Good work being done by Apple
* Open-source WebKit is likely to lag a bit behind Apple's own development.
Chromium
* Believed to be memory-hungry (benchmarks?)
* V8 not optimal for ARM yet, but work is under way to improve it. V8 has a good chance of becoming the fastest JavaScript JIT on ARM in the medium term.
* Maintenance and security update process still uncertain?
* Plugin availability / maturity?
Benchmarking
* We don't have a great way to compare browser performance right now.
* What benchmarks exist? (synspider, dromaeo, ...)
* Copyright / IP problems frustrate the standardisation of content-based benchmarks. Can we work round this?
* Most standard benchmarks are microbenchmarks and not a good guide to human perception of the browser performance
* Define an explicit human-based benchmark to supplement what already exists?
Work items (maverick-alpha-3):
[pwlars] script to launch browser and measure browser load time: DONE
[pwlars] Investigate javascript performance benchmarks: DONE
Work items (ubuntu-
[pwlars] script(s) to execute javascript benchmarks: DONE
[pwlars] script(s) to collect and log results from javascript benchmarks: DONE
Work items (ubuntu-10.10):
[pwlars] script to instrument a page and measure page load time: POSTPONED
[pwlars] script to launch page load time tests in browser and collect results: POSTPONED
[pwlars] create or modify sample webpages to test page load performance: POSTPONED
Work Items
Dependency tree
* Blueprints in grey have been implemented.