Skip to content

Commit 4cb8b24

Browse files
committed
perf: keep arabic no-space merges linear
1 parent fcf9c62 commit 4cb8b24

4 files changed

Lines changed: 331 additions & 311 deletions

File tree

benchmarks/chrome.json

Lines changed: 72 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -3,44 +3,44 @@
33
"results": [
44
{
55
"label": "Our library: prepare()",
6-
"ms": 15.5,
6+
"ms": 19.150000005960464,
77
"desc": "One cold 500-text measurement batch"
88
},
99
{
1010
"label": "Our library: layout()",
11-
"ms": 0.13400000005960463,
11+
"ms": 0.13474999994039535,
1212
"desc": "Normalized hot-path throughput per 500-text batch"
1313
},
1414
{
1515
"label": "DOM batch",
16-
"ms": 3.5999999940395355,
16+
"ms": 3.9000000059604645,
1717
"desc": "Single 400→300px batch resize: write all, then read all"
1818
},
1919
{
2020
"label": "DOM interleaved",
21-
"ms": 41.900000005960464,
21+
"ms": 43,
2222
"desc": "Single 400→300px batch resize: write + read per div"
2323
}
2424
],
2525
"richResults": [
2626
{
2727
"label": "Our library: measureLineStats()",
28-
"ms": 0.0125,
28+
"ms": 0.013749999552965166,
2929
"desc": "60-text shared-corpus batch across widths 180/220/260px; stats only"
3030
},
3131
{
3232
"label": "Our library: layoutWithLines()",
33-
"ms": 0.053750000149011615,
33+
"ms": 0.05249999985098838,
3434
"desc": "60-text shared-corpus batch across widths 180/220/260px; materializes text lines"
3535
},
3636
{
3737
"label": "Our library: walkLineRanges()",
38-
"ms": 0.027499999850988388,
38+
"ms": 0.026249999552965163,
3939
"desc": "60-text shared-corpus batch across widths 180/220/260px; line ranges only, no line text strings"
4040
},
4141
{
4242
"label": "Our library: layoutNextLine()",
43-
"ms": 0.04624999985098839,
43+
"ms": 0.04750000014901161,
4444
"desc": "60-text shared-corpus batch across widths 180/220/260px; streaming line-by-line layout"
4545
}
4646
],
@@ -52,61 +52,61 @@
5252
},
5353
{
5454
"label": "Our library: walkRichInlineLineRanges()",
55-
"ms": 0.021249999105930326,
55+
"ms": 0.02250000014901161,
5656
"desc": "36 rich-text inline flow shared-corpus texts across widths 180/220/260px; per-line ranges with fragment ownership, no text strings"
5757
},
5858
{
5959
"label": "Our library: materializeRichInlineLineRange()",
60-
"ms": 0.051249999552965164,
60+
"ms": 0.05500000044703483,
6161
"desc": "36 rich-text inline flow shared-corpus texts across widths 180/220/260px; range walker plus per-line materialization"
6262
},
6363
{
6464
"label": "Our library: layoutNextRichInlineLineRange() + materializeRichInlineLineRange()",
65-
"ms": 0.04750000014901161,
65+
"ms": 0.05125000029802322,
6666
"desc": "36 rich-text inline flow shared-corpus texts across widths 180/220/260px; streaming range walk plus per-line materialization"
6767
}
6868
],
6969
"richPreWrapResults": [
7070
{
7171
"label": "Our library: measureLineStats()",
72-
"ms": 0.26749999821186066,
72+
"ms": 0.275,
7373
"desc": "12 generated pre-wrap texts with 320 hard-break chunks across widths 220/260/320px; stats only"
7474
},
7575
{
7676
"label": "Our library: layoutWithLines()",
77-
"ms": 0.3849999994039536,
77+
"ms": 0.4024999991059304,
7878
"desc": "12 generated pre-wrap texts with 320 hard-break chunks across widths 220/260/320px; materializes text lines"
7979
},
8080
{
8181
"label": "Our library: walkLineRanges()",
82-
"ms": 0.22749999910593033,
82+
"ms": 0.23250000029802323,
8383
"desc": "12 generated pre-wrap texts with 320 hard-break chunks across widths 220/260/320px; line ranges only, no line text strings"
8484
},
8585
{
8686
"label": "Our library: layoutNextLine()",
87-
"ms": 0.9424999997019767,
87+
"ms": 0.975,
8888
"desc": "12 generated pre-wrap texts with 320 hard-break chunks across widths 220/260/320px; streaming line-by-line layout"
8989
}
9090
],
9191
"richLongResults": [
9292
{
9393
"label": "Our library: measureLineStats()",
94-
"ms": 1.7312500000000002,
94+
"ms": 1.7850000001490116,
9595
"desc": "8 Arabic long-form texts across widths 240/300/360px; stats only"
9696
},
9797
{
9898
"label": "Our library: layoutWithLines()",
99-
"ms": 7.760000000149011,
99+
"ms": 7.928750000149011,
100100
"desc": "8 Arabic long-form texts across widths 240/300/360px; materializes text lines"
101101
},
102102
{
103103
"label": "Our library: walkLineRanges()",
104-
"ms": 4.854999999701977,
104+
"ms": 4.646249999850989,
105105
"desc": "8 Arabic long-form texts across widths 240/300/360px; line ranges only, no line text strings"
106106
},
107107
{
108108
"label": "Our library: layoutNextLine()",
109-
"ms": 5.207500000298023,
109+
"ms": 5.493749999254942,
110110
"desc": "8 Arabic long-form texts across widths 240/300/360px; streaming line-by-line layout"
111111
}
112112
],
@@ -121,10 +121,10 @@
121121
"breakableSegments": 0,
122122
"width": 300,
123123
"lineCount": 193,
124-
"analysisMs": 2.100000023841858,
125-
"measureMs": 3.9999999403953552,
126-
"prepareMs": 6.100000023841858,
127-
"layoutMs": 0.026500000059604643
124+
"analysisMs": 2.5,
125+
"measureMs": 5.300000011920929,
126+
"prepareMs": 7.800000011920929,
127+
"layoutMs": 0.025999999940395355
128128
},
129129
{
130130
"id": "ja-rashomon",
@@ -136,10 +136,10 @@
136136
"breakableSegments": 1,
137137
"width": 300,
138138
"lineCount": 380,
139-
"analysisMs": 4.300000011920929,
140-
"measureMs": 7.5,
141-
"prepareMs": 11.700000047683716,
142-
"layoutMs": 0.04949999988079071
139+
"analysisMs": 4.200000047683716,
140+
"measureMs": 8.000000059604645,
141+
"prepareMs": 12.400000035762787,
142+
"layoutMs": 0.04900000005960464
143143
},
144144
{
145145
"id": "ko-unsu-joh-eun-nal",
@@ -151,10 +151,10 @@
151151
"breakableSegments": 0,
152152
"width": 300,
153153
"lineCount": 428,
154-
"analysisMs": 2,
155-
"measureMs": 7.799999952316284,
156-
"prepareMs": 9.899999976158142,
157-
"layoutMs": 0.07650000005960464
154+
"analysisMs": 3.300000011920929,
155+
"measureMs": 9.5,
156+
"prepareMs": 13,
157+
"layoutMs": 0.0780000001192093
158158
},
159159
{
160160
"id": "zh-zhufu",
@@ -166,10 +166,10 @@
166166
"breakableSegments": 4,
167167
"width": 300,
168168
"lineCount": 626,
169-
"analysisMs": 6.599999964237213,
170-
"measureMs": 11.800000011920929,
171-
"prepareMs": 19,
172-
"layoutMs": 0.0775
169+
"analysisMs": 8,
170+
"measureMs": 17.90000009536743,
171+
"prepareMs": 26.700000047683716,
172+
"layoutMs": 0.08050000011920928
173173
},
174174
{
175175
"id": "zh-guxiang",
@@ -181,10 +181,10 @@
181181
"breakableSegments": 14,
182182
"width": 300,
183183
"lineCount": 375,
184-
"analysisMs": 4,
185-
"measureMs": 7.900000035762787,
186-
"prepareMs": 12.100000023841858,
187-
"layoutMs": 0.047000000178813936
184+
"analysisMs": 4.5,
185+
"measureMs": 10,
186+
"prepareMs": 14.399999976158142,
187+
"layoutMs": 0.0475
188188
},
189189
{
190190
"id": "th-nithan-vetal-story-1",
@@ -196,10 +196,10 @@
196196
"breakableSegments": 8087,
197197
"width": 300,
198198
"lineCount": 1024,
199-
"analysisMs": 7.199999988079071,
200-
"measureMs": 6.800000011920929,
201-
"prepareMs": 14.099999964237213,
202-
"layoutMs": 0.0875
199+
"analysisMs": 9.399999976158142,
200+
"measureMs": 10.399999976158142,
201+
"prepareMs": 19.5,
202+
"layoutMs": 0.0925
203203
},
204204
{
205205
"id": "my-cunning-heron-teacher",
@@ -211,10 +211,10 @@
211211
"breakableSegments": 422,
212212
"width": 300,
213213
"lineCount": 81,
214-
"analysisMs": 0.6000000238418579,
215-
"measureMs": 0.7999999523162842,
216-
"prepareMs": 1.399999976158142,
217-
"layoutMs": 0.006500000059604645
214+
"analysisMs": 0.800000011920929,
215+
"measureMs": 1,
216+
"prepareMs": 1.699999988079071,
217+
"layoutMs": 0.0075
218218
},
219219
{
220220
"id": "my-bad-deeds-return-to-you-teacher",
@@ -226,10 +226,10 @@
226226
"breakableSegments": 274,
227227
"width": 300,
228228
"lineCount": 54,
229-
"analysisMs": 0.3999999761581421,
230-
"measureMs": 0.5000000596046448,
231-
"prepareMs": 0.9000000357627869,
232-
"layoutMs": 0.0044999998807907105
229+
"analysisMs": 0.5,
230+
"measureMs": 0.7000000476837158,
231+
"prepareMs": 1.2999999523162842,
232+
"layoutMs": 0.004500000178813935
233233
},
234234
{
235235
"id": "ur-chughd",
@@ -241,10 +241,10 @@
241241
"breakableSegments": 2922,
242242
"width": 300,
243243
"lineCount": 351,
244-
"analysisMs": 2.100000023841858,
245-
"measureMs": 3.5,
246-
"prepareMs": 5.799999952316284,
247-
"layoutMs": 0.0425
244+
"analysisMs": 3.300000011920929,
245+
"measureMs": 4.400000035762787,
246+
"prepareMs": 7.600000023841858,
247+
"layoutMs": 0.04300000011920929
248248
},
249249
{
250250
"id": "km-prachum-reuang-preng-khmer-volume-7-stories-1-10",
@@ -256,10 +256,10 @@
256256
"breakableSegments": 4010,
257257
"width": 300,
258258
"lineCount": 591,
259-
"analysisMs": 4.199999988079071,
260-
"measureMs": 4.500000059604645,
261-
"prepareMs": 8.900000035762787,
262-
"layoutMs": 0.085
259+
"analysisMs": 7.899999976158142,
260+
"measureMs": 5.599999964237213,
261+
"prepareMs": 12.600000023841858,
262+
"layoutMs": 0.08599999994039535
263263
},
264264
{
265265
"id": "hi-eidgah",
@@ -271,10 +271,10 @@
271271
"breakableSegments": 4090,
272272
"width": 300,
273273
"lineCount": 653,
274-
"analysisMs": 3.300000011920929,
275-
"measureMs": 6.400000035762787,
276-
"prepareMs": 9.899999976158142,
277-
"layoutMs": 0.06800000011920929
274+
"analysisMs": 5.199999988079071,
275+
"measureMs": 8.699999988079071,
276+
"prepareMs": 13.699999988079071,
277+
"layoutMs": 0.07049999982118607
278278
},
279279
{
280280
"id": "synthetic-long-breakable-runs",
@@ -286,10 +286,10 @@
286286
"breakableSegments": 1760,
287287
"width": 300,
288288
"lineCount": 2860,
289-
"analysisMs": 6.300000011920929,
290-
"measureMs": 9.800000011920929,
291-
"prepareMs": 16.69999998807907,
292-
"layoutMs": 0.3075
289+
"analysisMs": 8,
290+
"measureMs": 13.199999928474426,
291+
"prepareMs": 21.399999976158142,
292+
"layoutMs": 0.31099999994039534
293293
},
294294
{
295295
"id": "ar-risalat-al-ghufran-part-1",
@@ -301,11 +301,11 @@
301301
"breakableSegments": 18745,
302302
"width": 300,
303303
"lineCount": 2643,
304-
"analysisMs": 14.099999964237213,
305-
"measureMs": 42,
306-
"prepareMs": 58.700000047683716,
307-
"layoutMs": 0.2725
304+
"analysisMs": 29,
305+
"measureMs": 48,
306+
"prepareMs": 75.5,
307+
"layoutMs": 0.2785000002384186
308308
}
309309
],
310-
"requestId": "1775614268263-14a33wu1cdh"
310+
"requestId": "1775614879466-h55xk90yb4"
311311
}

0 commit comments

Comments
 (0)