Project Dory: Difference between revisions
Jump to navigation
Jump to search
(→Results: update gist 20171120) |
m (Add section "Test result summary" to summarize Hasal test results) |
||
| Line 74: | Line 74: | ||
| network.buffer.cache.count || https://gist.github.com/7c8b2ca0d987f0ed6897695c35a55095 | | network.buffer.cache.count || https://gist.github.com/7c8b2ca0d987f0ed6897695c35a55095 | ||
|} | |} | ||
* Test result summary | |||
** javascript.options.baselinejit.threshold: for most test cases that completes quickly (< 100 ms), the default value performs similarly to the other values. Setting it to 50 is likely to have a smaller variation. For test cases that take longer time (> 200 ms) Setting the pref to 50 almost outperforms the default value. The only exception is test 'test_firefox_gslide_ail_pagedown_0', but the difference is marginal (within 1 frame). | |||
== External Links == | == External Links == | ||
Revision as of 11:25, 28 November 2017
Project Goals
- Investigate the usage of current preferences:
- Understand and document existing preferences (lifetime, type, whether they are still in use, etc.)
- Clean up preferences (unused, incorrectly used, non-obvious).
- Use preferences as performance tuning knobs and investigate the performance implications of these knobs.
- Prioritize the preferences with their relevance to performance.
- Tweak the preferences and run automated tests against the values to see their performance implications.
Participants
- Kan-Ru Chen
- Cervantes Yu
- Will Wang
- WeiCheng Pan
- Shako Ho
- Walter Chen
- Askeing Yen
Roadmap
- Find a systematic way to manage and prioritize default preference values.
- Co-work with libpref redesign project on new persistence format of preferences.
- Find performance related preferences during the process.
- Get feedback from relevant teams.
- Initially we may target JS related preferences.
- Record the performance implications of preferences using the new persistence format.
Things to Consider
- What's the new persistence format for preferences?
- What data should a pref contain?
- Internal name, a more descriptive name, description, default value, etc.
- #include from smaller subsets in the final pref file.
- Group prefs that are relevant (sharing the same prefix) in smaller files.
- Standalone top branch indicates that the pref should be under some other branch.
- There is only 1 pref beginning with "slider": slider.snapMultiplier
- Move to browser.slider.snapMultiplier?
- camelCase, underscore_names, or dashed-names?
- Envisioning a front-end user interface that is more user-friendly than about:config?
- Makes it easier for users to tweak or experiment with the browser.
- Inline readonly prefs in code as constants?
Results
- A Hasal trial run to test the performance effect of changing JS baseline JIT threshold values:
- https://gist.github.com/ShakoHo/2e2321294d567d913eea5eaa58af60e0
- Twiddling the preference has influence of performance as can be seen in the test results, but there is no consistent change among the tests.
- Test result summary
- javascript.options.baselinejit.threshold: for most test cases that completes quickly (< 100 ms), the default value performs similarly to the other values. Setting it to 50 is likely to have a smaller variation. For test cases that take longer time (> 200 ms) Setting the pref to 50 almost outperforms the default value. The only exception is test 'test_firefox_gslide_ail_pagedown_0', but the difference is marginal (within 1 frame).