large performance regression in multi-column layout with hyphenation enabled

NEW
Unassigned

Status

()

Core
Layout: Text
P3
normal
4 years ago
4 years ago

People

(Reporter: jtd, Unassigned)

Tracking

({perf, regression, testcase})

Trunk
x86
Windows 7
perf, regression, testcase
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

(Reporter)

Description

4 years ago
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
(Reporter)

Comment 1

4 years ago
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.

Updated

4 years ago
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

Comment 3

4 years ago
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

Updated

4 years ago
Blocks: 761442
Keywords: regressionwindow-wanted
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.