Wismill
Wismill
@Bodigrim new implementation. I am quite happy with the benchmark: Benchmark results GHC 9.2.8, Linux, 8 × AMD Ryzen 5 2500U ``` All Decimal Unbounded Small 1 Data.Text.Lazy.Builder: OK 263...
Fixed detailed benchmarks: finally they are not as good as I thought… I realized that the simple benchmark had differences with the detailed one for the config. I needed to...
So after reading the Core dump, it seems that in the specific benchmark for unbounded integers: - [Data.ByteString.Builder](https://github.com/wismill/linear-builder/blob/482d58b65cb196dc9c5757cb7a10029442053427/bench/BenchDecimal.hs#L119): in `B.integerDec i (acc B.integerDec i)`, `B.integerDec i` is *shared*. - [Data.Text.Builder.Linear](https://github.com/wismill/linear-builder/blob/482d58b65cb196dc9c5757cb7a10029442053427/bench/BenchDecimal.hs#L126):...
Using the following function makes the benchmark a bit fairer: ```haskell benchUnboundedLinearBuilder ∷ Integer → Int → T.Text benchUnboundedLinearBuilder k m = runBuffer (\b → go b m) where go...
New (fair) benchmark ``` All Decimal: detailed unbounded Both Small 1 Data.ByteString.Builder: OK 487 ns ± 7.8 ns, 4.9 KB allocated, 3 B copied, 28 MB peak memory Data.Text.Builder.Linear: OK...
Late to the party: `8 × AMD Ryzen 5 2500U @ 2GHz` ``` SmallOnly vs. BigOnly (1,10000) (1,5000) (1,2500) (1,2500) (1,1250) (1,1250) (1,625) (1,313) (1,157) (1,157) (1,79) (1,79) (1,79) (1,40)...
Rebased, added/fixed notes required by review and the (optional) benchmark. The latter requires setting `cabal.project.local` for `tasty-bench-fit`.
> Could we try building a list of powers of 10 (instead of building recursive closures `(Bool → DigitsWriter# s)`) there? @Bodigrim I already tried using lists as `bytestring` does...
@Bodigrim there’s something wrong with the CI