|
|
Chromium Code Reviews|
Created:
4 years, 3 months ago by krasin1 Modified:
4 years, 3 months ago CC:
chromium-reviews, szager+layoutwatch_chromium.org, zoltan1, blink-reviews-layout_chromium.org, pdr+renderingwatchlist_chromium.org, eae+blinkwatch, leviw+renderwatch, jchaffraix+rendering, blink-reviews Target Ref:
refs/pending/heads/master Project:
chromium Visibility:
Public. |
DescriptionLayoutTable: gracefully degrade in the presence of collspan > 1.
Currently, there's a boolean field that allows to take a fast path
when mapping absolute columns to effective columns (and back), but
the fast path is completely abandoned, if a single call with
colspan > 1 presented.
This change allows gracefully degrade the performance of the fast
path by maintaining the number of first cells with colspan = 1,
which allows to skip them, even if some cells have colspan > 1.
This change speeds up large-table-with-collapsed-borders-and-colspans-wider-than-table
microbenchmark by approximately 2x, see:
https://storage.googleapis.com/cfi-stats/2016-09-09/results.html
BUG=643724
Committed: https://crrev.com/60f47383d88f942923b5ff963023d4547397acc2
Cr-Commit-Position: refs/heads/master@{#417829}
Patch Set 1 #Patch Set 2 : skip first m_noCellColspanAtLeast columns in the slow path #Patch Set 3 : maintain on append #Patch Set 4 : CL for src perf tryjob to run blink_perf.layout benchmark on linux platform(s) #
Messages
Total messages: 26 (19 generated)
The CQ bit was checked by krasin@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
Description was changed from ========== Gracefully degrade in the presence of collspan > 1. BUG=643724 ========== to ========== LayoutTable: gracefully degrade in the presence of collspan > 1. Currently, there's a boolean field that allows to take a fast path when mapping absolute columns to effective columns (and back), but the fast path is completely abandoned, if a single call with colspan > 1 presented. This change allows gracefully degrade the performance of the fast path by maintaining the number of first cells with colspan = 1, which allows to skip them, even if some cells have colspan > 1. This change speeds up large-table-with-collapsed-borders-and-colspans-wider-than-table micro-benchmark by approximately 2x. BUG=643724 ==========
Description was changed from ========== LayoutTable: gracefully degrade in the presence of collspan > 1. Currently, there's a boolean field that allows to take a fast path when mapping absolute columns to effective columns (and back), but the fast path is completely abandoned, if a single call with colspan > 1 presented. This change allows gracefully degrade the performance of the fast path by maintaining the number of first cells with colspan = 1, which allows to skip them, even if some cells have colspan > 1. This change speeds up large-table-with-collapsed-borders-and-colspans-wider-than-table micro-benchmark by approximately 2x. BUG=643724 ========== to ========== LayoutTable: gracefully degrade in the presence of collspan > 1. Currently, there's a boolean field that allows to take a fast path when mapping absolute columns to effective columns (and back), but the fast path is completely abandoned, if a single call with colspan > 1 presented. This change allows gracefully degrade the performance of the fast path by maintaining the number of first cells with colspan = 1, which allows to skip them, even if some cells have colspan > 1. This change speeds up large-table-with-collapsed-borders-and-colspans-wider-than-table micro-benchmark by approximately 2x, see: https://storage.googleapis.com/cfi-stats/2016-09-09/results.html BUG=643724 ==========
Description was changed from ========== LayoutTable: gracefully degrade in the presence of collspan > 1. Currently, there's a boolean field that allows to take a fast path when mapping absolute columns to effective columns (and back), but the fast path is completely abandoned, if a single call with colspan > 1 presented. This change allows gracefully degrade the performance of the fast path by maintaining the number of first cells with colspan = 1, which allows to skip them, even if some cells have colspan > 1. This change speeds up large-table-with-collapsed-borders-and-colspans-wider-than-table micro-benchmark by approximately 2x, see: https://storage.googleapis.com/cfi-stats/2016-09-09/results.html BUG=643724 ========== to ========== LayoutTable: gracefully degrade in the presence of collspan > 1. Currently, there's a boolean field that allows to take a fast path when mapping absolute columns to effective columns (and back), but the fast path is completely abandoned, if a single call with colspan > 1 presented. This change allows gracefully degrade the performance of the fast path by maintaining the number of first cells with colspan = 1, which allows to skip them, even if some cells have colspan > 1. This change speeds up large-table-with-collapsed-borders-and-colspans-wider-than-table microbenchmark by approximately 2x, see: https://storage.googleapis.com/cfi-stats/2016-09-09/results.html BUG=643724 ==========
krasin@chromium.org changed reviewers: + eae@chromium.org
Hi Emil, while investigating perf regression reported in https://crbug.com/643724, I have come to two findings: 1. Clang codegen regressed a bit by inserting an unnecessary mov into a hot loop. That's irrelevant to the CL. 2. The majority of the time is spent in the slow path for mapping absolute columns to effective columns. That's what I partially fix here by degrading the fast path gracefully. Please, take a look!
The CQ bit was checked by thakis@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
CL for src perf tryjob to run blink_perf.layout benchmark on linux platform(s)
eae should review this, he actually knows this code. But since we seem to care about this metric (we have a benchmark for it), this looks like a great change :-)
The CQ bit was checked by krasin@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
This is great and seems well worth the slight increase in memory usage for RenderTable. Thanks for working on this and the detailed explanation! LGTM
The CQ bit was checked by eae@chromium.org
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
Message was sent while issue was closed.
Description was changed from ========== LayoutTable: gracefully degrade in the presence of collspan > 1. Currently, there's a boolean field that allows to take a fast path when mapping absolute columns to effective columns (and back), but the fast path is completely abandoned, if a single call with colspan > 1 presented. This change allows gracefully degrade the performance of the fast path by maintaining the number of first cells with colspan = 1, which allows to skip them, even if some cells have colspan > 1. This change speeds up large-table-with-collapsed-borders-and-colspans-wider-than-table microbenchmark by approximately 2x, see: https://storage.googleapis.com/cfi-stats/2016-09-09/results.html BUG=643724 ========== to ========== LayoutTable: gracefully degrade in the presence of collspan > 1. Currently, there's a boolean field that allows to take a fast path when mapping absolute columns to effective columns (and back), but the fast path is completely abandoned, if a single call with colspan > 1 presented. This change allows gracefully degrade the performance of the fast path by maintaining the number of first cells with colspan = 1, which allows to skip them, even if some cells have colspan > 1. This change speeds up large-table-with-collapsed-borders-and-colspans-wider-than-table microbenchmark by approximately 2x, see: https://storage.googleapis.com/cfi-stats/2016-09-09/results.html BUG=643724 ==========
Message was sent while issue was closed.
Committed patchset #4 (id:60001)
Message was sent while issue was closed.
Description was changed from ========== LayoutTable: gracefully degrade in the presence of collspan > 1. Currently, there's a boolean field that allows to take a fast path when mapping absolute columns to effective columns (and back), but the fast path is completely abandoned, if a single call with colspan > 1 presented. This change allows gracefully degrade the performance of the fast path by maintaining the number of first cells with colspan = 1, which allows to skip them, even if some cells have colspan > 1. This change speeds up large-table-with-collapsed-borders-and-colspans-wider-than-table microbenchmark by approximately 2x, see: https://storage.googleapis.com/cfi-stats/2016-09-09/results.html BUG=643724 ========== to ========== LayoutTable: gracefully degrade in the presence of collspan > 1. Currently, there's a boolean field that allows to take a fast path when mapping absolute columns to effective columns (and back), but the fast path is completely abandoned, if a single call with colspan > 1 presented. This change allows gracefully degrade the performance of the fast path by maintaining the number of first cells with colspan = 1, which allows to skip them, even if some cells have colspan > 1. This change speeds up large-table-with-collapsed-borders-and-colspans-wider-than-table microbenchmark by approximately 2x, see: https://storage.googleapis.com/cfi-stats/2016-09-09/results.html BUG=643724 Committed: https://crrev.com/60f47383d88f942923b5ff963023d4547397acc2 Cr-Commit-Position: refs/heads/master@{#417829} ==========
Message was sent while issue was closed.
Patchset 4 (id:??) landed as https://crrev.com/60f47383d88f942923b5ff963023d4547397acc2 Cr-Commit-Position: refs/heads/master@{#417829} |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
