Comparing the results of rendering hyphenated, multi-column layout of English text between Firefox 19 and Firefox 28, the current nightly build appears to be 3x slower. http://people.mozilla.org/~jdaggett/textbench/textbenchrun.html?test=complex_multi_column_hyphenation_kerning_and_ligatures_multicolumn_en FF19: 291ms FF22: 284ms FF24: 740ms FF28 Nightly: 838ms Windows 7, same machine, latest updates from MS applied Full set of results: http://pastebin.mozilla.org/3644805 Note: hit the spacebar to view the test text
Comparing FF19 to FF28 Nightly on OSX, there's only a 23% slowdown.
I'm not sure offhand why there's such a regression (I guess it'd be worth profiling the testcase with old and new versions and comparing their profiles, to see what has become so expensive). However, I did notice one general inefficiency in how we handle auto-hyphenated text, so I've filed bug 941638 about that. The patch there should give a significant perf improvement for this testcase - but doesn't account for the change between FF19 and current trunk.
Keywords: perf, regression, regressionwindow-wanted, testcase
Priority: -- → P3
Summary: large regression in multi-column layout with hyphenation enabled → large performance regression in multi-column layout with hyphenation enabled
Regression between Firefox22 and Firefox23 Regression window(m-c nonPGO) Good: http://hg.mozilla.org/mozilla-central/rev/b9d56a1e0a61 Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20130411 Firefox/23.0 ID:20130411081408 complex multicolumn en 706ms sd: 12.4% hyphenation kerning_and_ligatures Bad: http://hg.mozilla.org/mozilla-central/rev/7b8ed29c6bc0 Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20130411 Firefox/23.0 ID:20130411122104 complex multicolumn en 1442ms sd: 19.0% hyphenation kerning_and_ligatures Pushlog: http://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=b9d56a1e0a61&tochange=7b8ed29c6bc0 Regression window(m-i nonPGO) Good: http://hg.mozilla.org/integration/mozilla-inbound/rev/ca09bff8d6f4 Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20130411 Firefox/23.0 ID:20130411062607 complex multicolumn en 700ms sd: 10.5% hyphenation kerning_and_ligatures Bad: http://hg.mozilla.org/integration/mozilla-inbound/rev/b16ed870d536 Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20130411 Firefox/23.0 ID:20130411075308 complex multicolumn en 1423ms sd: 14.8% hyphenation kerning_and_ligatures Pushlog: http://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=ca09bff8d6f4&tochange=b16ed870d536 In local build(nonPGO) Build from ca09bff8d6f4 complex multicolumn en 725ms sd: 17.0% hyphenation kerning_and_ligatures Build from 8a0073ae1a45 complex multicolumn en 1345ms sd: 12.9% hyphenation kerning_and_ligatures Regressed by: 8a0073ae1a45 Jonathan Kew — Bug 761442 - don't use per-word shaping with fonts that use <space> in opentype lookups. r=jdaggett
I think the main issue here isn't related to hyphenation (that was a secondary factor, addressed in bug 941638); but a larger effect is the lack of shaped-word caching due to the presence of kerns with the <space> glyph in Times New Roman. The "hyphenation kerning_and_ligatures" testcase will hit this on Windows, which accounts for the large perf regression. John, you might want to compare a testcase that enables hyphenation but *without* the explicit kerning_and_ligatures settings.
You need to log in before you can comment on or make changes to this bug.