| <?php |
| $title = "Performance"; |
| include("../../header.inc"); |
| ?> |
| |
| <h2>Performance</h2> |
| |
| <h3>Overview</h3> |
| |
| <p>Performance is a top priority for WebKit. We adhere to a simple directive for all work we do on WebKit.</p> |
| |
| <p><i>The way to make a program faster is to never let it get slower.</i></p> |
| |
| <p>We have a zero-tolerance policy for performance regressions. |
| If a patch lands that regresses performance according to our benchmarks, |
| then the person responsible must either back the patch out of the tree or drop everything immediately and fix the regression.</p> |
| |
| <p>Common excuses people give when they regress performance are, "But the new way is cleaner!" or "The new |
| way is more correct." We don't care. No performance regressions are allowed, regardless of the reason. There is no justification |
| for regressing performance. None.</p> |
| |
| <p>We have a number of benchmarks that we use to measure performance.</p> |
| |
| <ol> |
| <li>The i-Bench test suite is the most well-known cross-browser benchmark. |
| The HTML Load Speed and JavaScript tests are the most important sub-tests in the suite. |
| No check-in can regress the benchmark scores for these tests. |
| As of this writing, you can get the i-Bench test suite from |
| <a href="http://www.lionbridge.com/lionbridge/en-US/services/outsourced-testing/benchmark-software.htm">this page</a> on the Lionbridge website. |
| After accepting the license agreement you'll be able to download the suite from an FTP site at pcmag.com.</li> |
| <li>Our internal page load test suite (called the PLT for short) must also not regress. |
| The PLT contains pages that are representative of sites that are encountered in |
| the real world. The harness itself is built into Safari and is accessible from the <i>Debug</i> menu. |
| You can actually make Safari run the PLT on any set of test pages. |
| Unfortunately, the pages we use internally at Apple contain copyrighted material and therefore cannot be open source at this time. |
| We hope that in the future sites will be willing to donate snapshots of their front pages so that an open source cross-browser |
| test suite can be developed with content that is not as homogenous as the i-Bench pages.</li> |
| </ol> |
| |
| <h3>Get Involved!</h3> |
| |
| <p>How can you help improve WebKit's performance?</p> |
| |
| <dl> |
| <dt>Test for Regressions</dt> |
| <dd>If you have your own performance tests, run WebKit through them daily. Make sure that the performance of the sites you care about |
| does not regress. Test the above benchmarks on your hardware to help double-check that there have not been any regressions. Remember, the best |
| way to stay fast is to never let your code become slower. |
| |
| <dt>Open Source Benchmark</dt> |
| <dd>We have discussed with Mozilla and Opera the idea of an open-source cross-browser benchmark. The stumbling block to the construction of such |
| a test suite is that we need to get buy-in from high profile sites like <a href="http://www.google.com">Google</a>, <a href="http://www.amazon.com">Amazon</a> |
| or <a href="http://www.yahoo.com">Yahoo</a> to use snapshots of their front pages in the benchmark. The benefits of having your site in such a benchmark |
| are obvious, since browser vendors will make your sites faster as they optimize for the content of the benchmark. |
| |
| <p>If you work for one of these high profile sites we encourage you to <a href="../../contact.html">contact us</a> if you are interested in having your |
| company contribute content |
| to such a benchmark.</p> |
| |
| <dt>Profile with Shark</dt> |
| <dd>OS X now has an excellent profiling tool called Shark. If you find operations that are slow in WebKit, we encourage you to use Shark to isolate |
| performance problems and file bugs with that information. <a href="http://developer.apple.com/tools/shark_optimize.html">Here is a link</a> to get you |
| started using Shark. |
| |
| </dl> |
| <?php |
| include("../../footer.inc"); |
| ?> |