Skip to content

Commit e298d32

Browse files
committed
Regenerate benchmark results
1 parent 1b94622 commit e298d32

1 file changed

Lines changed: 75 additions & 73 deletions

File tree

README.md

Lines changed: 75 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -138,50 +138,50 @@ builder remains as fast as before and now is a clear champion.
138138

139139
## Benchmarks for `Text`
140140

141-
Measured with GHC 9.6 on aarch64:
141+
Measured with GHC 9.12 on aarch64:
142142

143143
|Group / size|`text`|`text-builder`| |This package| |
144144
|------------|-----:|-------------:|-:|-----------:|-:|
145145
| **Text** ||||||
146-
|1|47.4 ns|24.2 ns|0.51x|35.2 ns|0.74x|
147-
|10|509 ns|195 ns|0.38x|197 ns|0.39x|
148-
|100|4.94 μs|1.74 μs|0.35x|1.66 μs|0.34x|
149-
|1000|52.6 μs|17.0 μs|0.32x|15.0 μs|0.28x|
150-
|10000|646 μs|206 μs|0.32x|155 μs|0.24x|
151-
|100000|12.2 ms|3.34 ms|0.27x|2.60 ms|0.21x|
152-
|1000000|159 ms|55.3 ms|0.35x|16.1 ms|0.10x|
146+
|1|63.3 ns|30.8 ns|0.49x|60.5 ns|0.95x|
147+
|10|764 ns|267 ns|0.35x|319 ns|0.42x|
148+
|100|7.53 μs|2.48 μs|0.33x|2.61 μs|0.35x|
149+
|1000|80.5 μs|26.7 μs|0.33x|23.1 μs|0.29x|
150+
|10000|949 μs|319 μs|0.34x|242 μs|0.26x|
151+
|100000|18.5 ms|8.22 ms|0.44x|2.36 ms|0.13x|
152+
|1000000|216 ms|107 ms|0.49x|22.9 ms|0.11x|
153153
| **Char** ||||||
154-
|1|46.9 ns|21.1 ns|0.45x|22.3 ns|0.48x|
155-
|10|229 ns|152 ns|0.66x|79.9 ns|0.35x|
156-
|100|2.00 μs|1.23 μs|0.61x|618 ns|0.31x|
157-
|1000|21.9 μs|10.3 μs|0.47x|6.28 μs|0.29x|
158-
|10000|285 μs|153 μs|0.54x|68.5 μs|0.24x|
159-
|100000|7.70 ms|4.08 ms|0.53x|992 μs|0.13x|
160-
|1000000|110 ms|106 ms|0.96x|9.19 ms|0.08x|
154+
|1|49.0 ns|34.8 ns|0.71x|38.1 ns|0.78x|
155+
|10|365 ns|293 ns|0.80x|117 ns|0.32x|
156+
|100|3.20 μs|2.38 μs|0.74x|804 ns|0.25x|
157+
|1000|35.4 μs|18.4 μs|0.52x|7.68 μs|0.22x|
158+
|10000|460 μs|265 μs|0.58x|86.5 μs|0.19x|
159+
|100000|12.7 ms|6.96 ms|0.55x|930 μs|0.07x|
160+
|1000000|175 ms|178 ms|1.02x|10.5 ms|0.06x|
161161
| **Decimal** ||||||
162-
|1|97.7 ns|872 ns|8.92x|80.2 ns|0.82x|
163-
|10|864 ns|8.72 μs|10.09x|684 ns|0.79x|
164-
|100|9.07 μs|93.5 μs|10.32x|7.25 μs|0.80x|
165-
|1000|92.4 μs|1.06 ms|11.44x|67.5 μs|0.73x|
166-
|10000|1.13 ms|13.4 ms|11.88x|667 μs|0.59x|
167-
|100000|18.7 ms|141 ms|7.57x|7.57 ms|0.41x|
168-
|1000000|229 ms|1.487 s|6.48x|67.8 ms|0.30x|
162+
|1|148 ns|490 ns|3.30x|126 ns|0.85x|
163+
|10|1.34 μs|4.80 μs|3.57x|1.07 μs|0.80x|
164+
|100|14.3 μs|53.6 μs|3.76x|10.8 μs|0.76x|
165+
|1000|148 μs|738 μs|5.00x|106 μs|0.72x|
166+
|10000|1.66 ms|19.8 ms|11.96x|1.05 ms|0.63x|
167+
|100000|28.3 ms|251 ms|8.88x|10.7 ms|0.38x|
168+
|1000000|334 ms|2.803 s|8.40x|108 ms|0.32x|
169169
| **Hexadecimal** ||||||
170-
|1|403 ns|749 ns|1.86x|43.9 ns|0.11x|
171-
|10|3.94 μs|7.66 μs|1.94x|308 ns|0.08x|
172-
|100|42.8 μs|89.0 μs|2.08x|2.88 μs|0.07x|
173-
|1000|486 μs|986 μs|2.03x|27.7 μs|0.06x|
174-
|10000|7.10 ms|12.6 ms|1.77x|283 μs|0.04x|
175-
|100000|80.1 ms|133 ms|1.65x|3.53 ms|0.04x|
176-
|1000000|867 ms|1.340 s|1.55x|28.9 ms|0.03x|
170+
|1|711 ns|81.2 ns|0.11x|74.2 ns|0.10x|
171+
|10|7.06 μs|795 ns|0.11x|510 ns|0.07x|
172+
|100|76.3 μs|8.04 μs|0.11x|4.62 μs|0.06x|
173+
|1000|862 μs|141 μs|0.16x|44.6 μs|0.05x|
174+
|10000|12.4 ms|1.73 ms|0.14x|451 μs|0.04x|
175+
|100000|138 ms|20.4 ms|0.15x|4.52 ms|0.03x|
176+
|1000000|1.502 s|228 ms|0.15x|45.9 ms|0.03x|
177177
| **Double** ||||||
178-
|1|7.56 μs|18.3 μs|2.42x|414 ns|0.05x|
179-
|10|76.5 μs|188 μs|2.46x|4.23 μs|0.06x|
180-
|100|754 μs|2.35 ms|3.11x|44.4 μs|0.06x|
181-
|1000|7.94 ms|25.8 ms|3.25x|436 μs|0.05x|
182-
|10000|79.1 ms|285 ms|3.60x|4.90 ms|0.06x|
183-
|100000|796 ms|2.938 s|3.69x|45.1 ms|0.06x|
184-
|1000000|8.003 s|32.411 s|4.05x|436 ms|0.05x|
178+
|1|13.4 μs|35.3 μs|2.63x|638 ns|0.05x|
179+
|10|137 μs|393 μs|2.88x|6.52 μs|0.05x|
180+
|100|1.35 ms|5.62 ms|4.15x|67.9 μs|0.05x|
181+
|1000|14.2 ms|71.9 ms|5.05x|671 μs|0.05x|
182+
|10000|143 ms|750 ms|5.25x|7.18 ms|0.05x|
183+
|100000|1.435 s|7.941 s|5.53x|70.4 ms|0.05x|
184+
|1000000|14.366 s|101.342 s|7.05x|689 ms|0.05x|
185185

186186
If you are not convinced by synthetic data,
187187
here are benchmarks for
@@ -207,53 +207,55 @@ customAttribute
207207
## Benchmarks for `ByteString`
208208

209209
Somewhat surprisingly, `text-builder-linear` now offers rendering to strict `ByteString`
210-
as well. It is consistently faster than `bytestring` when a string gets over 32k
210+
as well. It gets consistently faster than `bytestring`
211+
in all benchmarks except `Double` ones
212+
once a string gets over 32k
211213
(which is `defaultChunkSize` for `bytestring` builder). For mid-sized strings
212214
`bytestring` is slightly faster in certain disciplines, mostly by virtue of using
213215
`cbits` via FFI, while this package remains 100% native Haskell.
214216

215-
Benchmarks below were measured with GHC 9.6 on aarch64 and include comparison
217+
Benchmarks below were measured with GHC 9.12 on aarch64 and include comparison
216218
to [`bytestring-strict-builder`](https://hackage.haskell.org/package/bytestring-strict-builder):
217219

218220
|Group / size|`bytestring`|`…-strict-builder`| |This package| |
219221
|------------|-----------:|-----------------:|-:|-----------:|-:|
220222
| **Text** ||||||
221-
|1|106 ns|33.5 ns|0.32x|35.2 ns|0.33x|
222-
|10|322 ns|217 ns|0.68x|197 ns|0.61x|
223-
|100|2.49 μs|1.89 μs|0.76x|1.66 μs|0.67x|
224-
|1000|21.8 μs|18.5 μs|0.85x|15.0 μs|0.69x|
225-
|10000|231 μs|212 μs|0.92x|155 μs|0.67x|
226-
|100000|3.97 ms|3.54 ms|0.89x|2.60 ms|0.66x|
227-
|1000000|81.2 ms|51.5 ms|0.63x|16.1 ms|0.20x|
223+
|1|156 ns|55.9 ns|0.36x|60.5 ns|0.39x|
224+
|10|552 ns|374 ns|0.68x|319 ns|0.58x|
225+
|100|4.71 μs|3.25 μs|0.69x|2.61 μs|0.55x|
226+
|1000|41.7 μs|31.9 μs|0.76x|23.1 μs|0.56x|
227+
|10000|438 μs|366 μs|0.84x|242 μs|0.55x|
228+
|100000|7.58 ms|6.52 ms|0.86x|2.36 ms|0.31x|
229+
|1000000|112 ms|88.1 ms|0.78x|22.9 ms|0.20x|
228230
| **Char** ||||||
229-
|1|99.0 ns|19.4 ns|0.20x|22.3 ns|0.23x|
230-
|10|270 ns|82.9 ns|0.31x|79.9 ns|0.30x|
231-
|100|1.77 μs|723 ns|0.41x|618 ns|0.35x|
232-
|1000|20.4 μs|8.37 μs|0.41x|6.28 μs|0.31x|
233-
|10000|322 μs|129 μs|0.40x|68.5 μs|0.21x|
234-
|100000|10.4 ms|2.50 ms|0.24x|992 μs|0.10x|
235-
|1000000|143 ms|67.4 ms|0.47x|9.19 ms|0.06x|
231+
|1|138 ns|30.9 ns|0.22x|38.1 ns|0.28x|
232+
|10|408 ns|136 ns|0.33x|117 ns|0.29x|
233+
|100|2.96 μs|1.25 μs|0.42x|804 ns|0.27x|
234+
|1000|30.4 μs|14.2 μs|0.47x|7.68 μs|0.25x|
235+
|10000|394 μs|218 μs|0.55x|86.5 μs|0.22x|
236+
|100000|11.8 ms|4.00 ms|0.34x|930 μs|0.08x|
237+
|1000000|161 ms|112 ms|0.69x|10.5 ms|0.07x|
236238
| **Decimal** ||||||
237-
|1|152 ns|174 ns|1.14x|80.2 ns|0.53x|
238-
|10|685 ns|1.55 μs|2.26x|684 ns|1.00x|
239-
|100|5.88 μs|17.2 μs|2.93x|7.25 μs|1.23x|
240-
|1000|60.3 μs|196 μs|3.25x|67.5 μs|1.12x|
241-
|10000|648 μs|4.25 ms|6.57x|667 μs|1.03x|
242-
|100000|11.2 ms|62.8 ms|5.62x|7.57 ms|0.68x|
243-
|1000000|150 ms|655 ms|4.37x|67.8 ms|0.45x|
239+
|1|209 ns|295 ns|1.41x|126 ns|0.60x|
240+
|10|1.10 μs|2.67 μs|2.43x|1.07 μs|0.98x|
241+
|100|9.76 μs|29.8 μs|3.05x|10.8 μs|1.11x|
242+
|1000|100 μs|340 μs|3.40x|106 μs|1.06x|
243+
|10000|1.02 ms|7.32 ms|7.15x|1.05 ms|1.02x|
244+
|100000|14.6 ms|103 ms|7.04x|10.7 ms|0.73x|
245+
|1000000|179 ms|1.233 s|6.87x|108 ms|0.60x|
244246
| **Hexadecimal** ||||||
245-
|1|94.7 ns|||43.9 ns|0.46x|
246-
|10|255 ns|||308 ns|1.21x|
247-
|100|1.72 μs|||2.88 μs|1.67x|
248-
|1000|18.9 μs|||27.7 μs|1.46x|
249-
|10000|250 μs|||283 μs|1.13x|
250-
|100000|6.94 ms|||3.53 ms|0.51x|
251-
|1000000|93.2 ms|||28.9 ms|0.31x|
247+
|1|131 ns|||74.2 ns|0.57x|
248+
|10|360 ns|||510 ns|1.42x|
249+
|100|2.76 μs|||4.62 μs|1.68x|
250+
|1000|28.6 μs|||44.6 μs|1.56x|
251+
|10000|330 μs|||451 μs|1.37x|
252+
|100000|7.30 ms|||4.52 ms|0.62x|
253+
|1000000|103 ms|||45.9 ms|0.45x|
252254
| **Double** ||||||
253-
|1|457 ns|||414 ns|0.91x|
254-
|10|3.94 μs|||4.23 μs|1.07x|
255-
|100|40.3 μs|||44.4 μs|1.10x|
256-
|1000|398 μs|||436 μs|1.10x|
257-
|10000|5.65 ms|||4.90 ms|0.87x|
258-
|100000|63.3 ms|||45.1 ms|0.71x|
259-
|1000000|673 ms|||436 ms|0.65x|
255+
|1|456 ns|||638 ns|1.40x|
256+
|10|3.58 μs|||6.52 μs|1.82x|
257+
|100|36.2 μs|||67.9 μs|1.87x|
258+
|1000|367 μs|||671 μs|1.83x|
259+
|10000|5.17 ms|||7.18 ms|1.39x|
260+
|100000|59.0 ms|||70.4 ms|1.19x|
261+
|1000000|605 ms|||689 ms|1.14x|

0 commit comments

Comments
 (0)