e = HighlightOverlayPainting and CSSSpellingGrammarErrors enabled (kFastSpellingGrammar) r = both features enabled and ::spelling-error color:red (kOverlay) d = both features disabled n = perf test iterationCount I = perf test INITIAL_WORDS aGTCO = anonymous GetTextContentOffset or HighlightPaintingUtils::GetTextContentOffsets GTCO = NGFragmentItem::GetTextContentOffset LR = NGFragmentItem::LocalRect LLARFO = NGFragmentItem::LineLeftAndRightForOffsets IPFO = NGFragmentItem::InlinePositionForOffset NGTFP = NGTextFragmentPainter::Paint ctor = NGHighlightPainter constructor CP = NGHighlightPainter::ComputeParts CE = NGHighlightPainter::ComputeEdges +gtco = GetTextContentOffset optimisation (CL:4014023 PS2) +ipfo = InlinePositionForOffset optimisation (CL:4014023 PS3) n=default; columns avg stdev min aGTCO IPFO e r d 32.5 .616 31.9 558186 6002 44.1 1.44 42.3 564188 12004 48.7 .665 47.6 1116372 6002 I=3000 16.7 .430 16.2 22 22 16.7 .397 16.3 44 44 16.6 .225 16.2 44 22 I=10 21.4 6.62 16.2 3001 6002 29.8 1.01 28.3 6002 12004 20.1 6.29 15.7 6002 6002 I=3000 +gtco 16.7 .499 15.8 11 22 16.6 .482 16.0 22 44 16.7 .712 15.6 22 22 I=10 +gtco 21.4 6.94 16.2 3001 6002 23.6 4.12 20.0 6002 6003 18.5 3.74 15.2 6002 6002 I=3000 +gtco +ipfo 16.6 .411 15.7 11 22 16.6 .340 15.8 22 23 16.7 .262 16.1 22 22 I=10 +gtco +ipfo 1. https://bucket.daz.cat/7d8edde4c805e3b2.pb.gz e I=3000 n=500, NGTFP 73272685 41.92%, aGTCO 34047690, GTCO 18545227, LR 17364767, IPFO 17246313 2. https://bucket.daz.cat/e13d72fc30ff4f7f.pb.gz r I=3000 n=500, NGTFP 100150109 44.52%, aGTCO 35210066, GTCO 12733706, LR 32484532, IPFO 32269236, ctor 5672173, CP 1674103, CE 998935 3. https://bucket.daz.cat/34862cd5f5758156.pb.gz d I=3000 n=500, NGTFP 111978894 52.96%, aGTCO 69961289, GTCO 42789842, LLARFO 17352077, IPFO 17259756 4. https://bucket.daz.cat/82fc6c36ed7b64ce.pb.gz e I=10 n=500, NGTFP 638699 8.31%, aGTCO ?, GTCO 4872, LR 282107, IPFO 282107 5. https://bucket.daz.cat/fc7127585e7d3651.pb.gz r I=10 n=500, NGTFP 1092186 13.04%, aGTCO 9493, GTCO 8457, LR 529826, IPFO 515694, ctor 66204, CP 31013, CE 16024 6. https://bucket.daz.cat/5e825756c679c2d7.pb.gz d I=10 n=500, NGTFP 501850 6.82%, aGTCO 25524, GTCO 9379, LLARFO 258027, IPFO 253716 7. https://bucket.daz.cat/55574961fac63e73.pb.gz e I=3000 n=500 +gtco, NGTFP 34603061 25.64%, aGTCO 1159243, GTCO 126741, LR 17567550, LLARFO 9634376, IPFO 17482699 8. https://bucket.daz.cat/fa6fe4436ea253a5.pb.gz r I=3000 n=500 +gtco, NGTFP 60667750 32.25%, aGTCO 1536115, GTCO 191388, LR 32496177, IPFO 32370471, ctor 6074965, CP 1647943, CE 1921976 9. https://bucket.daz.cat/f84eed93f34d37c5.pb.gz d I=3000 n=500 +gtco, NGTFP 31969531 25.39%, aGTCO 2113739, GTCO 203803, LLARFO 16738497, IPFO 16687516 10. https://bucket.daz.cat/ae4592044d50a6c6.pb.gz e I=10 n=500 +gtco, NGTFP 574493 8.18%, aGTCO 13355, GTCO 9041, LR 259614, IPFO 259614 11. https://bucket.daz.cat/214bf3b705ef96c6.pb.gz r I=10 n=500 +gtco, NGTFP 1038246 12.33%, aGTCO 30683, GTCO 22634, LR 510239, IPFO 510239, ctor 82385, CP 40105, CE 20175 12. https://bucket.daz.cat/e8ad371f0de1a59c.pb.gz d I=10 n=500 +gtco, NGTFP 426195 6.30%, aGTCO ?, GTCO 9473, LLARFO 218404, IPFO 218404 13. https://bucket.daz.cat/8c8851928897e599.pb.gz r I=3000 n=500 +gtco +ipfo, NGTFP 47920682 28.18%, aGTCO 1990681, GTCO 201083, IPFO 15612864, ctor 22545443, CP 1919670, CE 2041770 14. https://bucket.daz.cat/603c9eb6634942da.pb.gz r I=10 n=500 +gtco +ipfo, NGTFP 841896 10.65%, aGTCO 18314, GTCO ?, IPFO 245297, ctor 349428, CP 22562, CE 43355