bytestring benchmarks performance: 9.8.1-alpha1
Here are the benchmarks which regress by more than 10% on 9.8.1-alpha1 vs ghc-9.6.2.
Name,mean9.8.0-alpha1
All.CSV.utf8 + renderTableB maxiTable,3.4830383285514777
All.Data.ByteString.Builder.ByteString insertion.foldMap byteStringCopy (10000),3.304850423382469
All.unlines.strict,2.4158711562055344
All.Data.ByteString.Builder.Encoding wrappers.foldMap word8 (10000),2.3816516080985486
All.Data.ByteString.Builder.ByteString insertion.foldMap byteString (10000),2.2069716837425593
"All.BoundsCheckFusion.Data.ByteString.Builder.foldMap [manually fused, right-assoc] (10000)",1.692653319345267
All.BoundsCheckFusion.Data.ByteString.Builder.foldMap (right-assoc) (10000),1.6717447251665245
"All.BoundsCheckFusion.Data.ByteString.Builder.foldMap [manually fused, left-assoc] (10000)",1.6416356111850268
All.CSV.utf8 + renderTableBE maxiTable,1.4125041000494691
All.BoundsCheckFusion.Data.ByteString.Builder.foldMap (left-assoc) (10000),1.304604928374307
All.Data.ByteString.Builder.Prim.ASCII.wordHex (10000),1.153113306069389
All.Data.ByteString.Builder.Prim.ASCII.word64Hex (10000),1.15142535403039
All.Data.ByteString.Builder.Prim.ASCII.word32Hex (10000),1.14763331451705
All.Data.ByteString.Builder.Prim.ASCII.word16Hex (10000),1.1418053057182664
I think all the builder ones are because of #23822, I have yet to investigate the unlines.strict
regression.