Last active
July 29, 2019 13:51
-
-
Save ivanbrennan/9f55ee766e4fc1102768582f9b8c6b4a to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import Criterion.Main | |
import Data.Foldable (foldl') | |
import Data.IntMap.Strict (IntMap, (!)) | |
import Data.List (unfoldr) | |
import qualified Data.IntMap.Strict as IntMap | |
{- | |
resultFile=bench-$(date +%s).html | |
ghc -O -package-env - --make ColumnBench.hs -no-keep-hi-files -no-keep-o-files && ./ColumnBench --output $resultFile | |
xopen $resultFile | |
-} | |
type Column = (String, Padding) | |
type Padding = String | |
type Column' = (String, Padding') | |
type Padding' = Int | |
main = defaultMain | |
[ bgroup "500" [ bench "semver grid" $ nf (grid 80) ["0.0.0", "0.0.0", "0.0.0", "0.0.0", "0.0.0", "0.0.1", "0.0.1", "0.0.1", "0.0.1", "0.0.1", "0.0.2", "0.0.2", "0.0.2", "0.0.2", "0.0.2", "0.0.3", "0.0.3", "0.0.3", "0.0.3", "0.0.3", "0.0.4", "0.0.4", "0.0.4", "0.0.4", "0.0.4", "0.0.5", "0.0.5", "0.0.5", "0.0.5", "0.0.5", "0.0.6", "0.0.6", "0.0.6", "0.0.6", "0.0.6", "0.0.7", "0.0.7", "0.0.7", "0.0.7", "0.0.7", "0.0.8", "0.0.8", "0.0.8", "0.0.8", "0.0.8", "0.0.9", "0.0.9", "0.0.9", "0.0.9", "0.0.9", "0.1.0", "0.1.0", "0.1.0", "0.1.0", "0.1.0", "0.1.1", "0.1.1", "0.1.1", "0.1.1", "0.1.1", "0.1.2", "0.1.2", "0.1.2", "0.1.2", "0.1.2", "0.1.3", "0.1.3", "0.1.3", "0.1.3", "0.1.3", "0.1.4", "0.1.4", "0.1.4", "0.1.4", "0.1.4", "0.1.5", "0.1.5", "0.1.5", "0.1.5", "0.1.5", "0.1.6", "0.1.6", "0.1.6", "0.1.6", "0.1.6", "0.1.7", "0.1.7", "0.1.7", "0.1.7", "0.1.7", "0.1.8", "0.1.8", "0.1.8", "0.1.8", "0.1.8", "0.1.9", "0.1.9", "0.1.9", "0.1.9", "0.1.9", "0.2.0", "0.2.0", "0.2.0", "0.2.0", "0.2.0", "0.2.1", "0.2.1", "0.2.1", "0.2.1", "0.2.1", "0.2.2", "0.2.2", "0.2.2", "0.2.2", "0.2.2", "0.2.3", "0.2.3", "0.2.3", "0.2.3", "0.2.3", "0.2.4", "0.2.4", "0.2.4", "0.2.4", "0.2.4", "0.2.5", "0.2.5", "0.2.5", "0.2.5", "0.2.5", "0.2.6", "0.2.6", "0.2.6", "0.2.6", "0.2.6", "0.2.7", "0.2.7", "0.2.7", "0.2.7", "0.2.7", "0.2.8", "0.2.8", "0.2.8", "0.2.8", "0.2.8", "0.2.9", "0.2.9", "0.2.9", "0.2.9", "0.2.9", "0.3.0", "0.3.0", "0.3.0", "0.3.0", "0.3.0", "0.3.1", "0.3.1", "0.3.1", "0.3.1", "0.3.1", "0.3.2", "0.3.2", "0.3.2", "0.3.2", "0.3.2", "0.3.3", "0.3.3", "0.3.3", "0.3.3", "0.3.3", "0.3.4", "0.3.4", "0.3.4", "0.3.4", "0.3.4", "0.3.5", "0.3.5", "0.3.5", "0.3.5", "0.3.5", "0.3.6", "0.3.6", "0.3.6", "0.3.6", "0.3.6", "0.3.7", "0.3.7", "0.3.7", "0.3.7", "0.3.7", "0.3.8", "0.3.8", "0.3.8", "0.3.8", "0.3.8", "0.3.9", "0.3.9", "0.3.9", "0.3.9", "0.3.9", "0.4.0", "0.4.0", "0.4.0", "0.4.0", "0.4.0", "0.4.1", "0.4.1", "0.4.1", "0.4.1", "0.4.1", "0.4.2", "0.4.2", "0.4.2", "0.4.2", "0.4.2", "0.4.3", "0.4.3", "0.4.3", "0.4.3", "0.4.3", "0.4.4", "0.4.4", "0.4.4", "0.4.4", "0.4.4", "0.4.5", "0.4.5", "0.4.5", "0.4.5", "0.4.5", "0.4.6", "0.4.6", "0.4.6", "0.4.6", "0.4.6", "0.4.7", "0.4.7", "0.4.7", "0.4.7", "0.4.7", "0.4.8", "0.4.8", "0.4.8", "0.4.8", "0.4.8", "0.4.9", "0.4.9", "0.4.9", "0.4.9", "0.4.9", "0.5.0", "0.5.0", "0.5.0", "0.5.0", "0.5.0", "0.5.1", "0.5.1", "0.5.1", "0.5.1", "0.5.1", "0.5.2", "0.5.2", "0.5.2", "0.5.2", "0.5.2", "0.5.3", "0.5.3", "0.5.3", "0.5.3", "0.5.3", "0.5.4", "0.5.4", "0.5.4", "0.5.4", "0.5.4", "0.5.5", "0.5.5", "0.5.5", "0.5.5", "0.5.5", "0.5.6", "0.5.6", "0.5.6", "0.5.6", "0.5.6", "0.5.7", "0.5.7", "0.5.7", "0.5.7", "0.5.7", "0.5.8", "0.5.8", "0.5.8", "0.5.8", "0.5.8", "0.5.9", "0.5.9", "0.5.9", "0.5.9", "0.5.9", "0.6.0", "0.6.0", "0.6.0", "0.6.0", "0.6.0", "0.6.1", "0.6.1", "0.6.1", "0.6.1", "0.6.1", "0.6.2", "0.6.2", "0.6.2", "0.6.2", "0.6.2", "0.6.3", "0.6.3", "0.6.3", "0.6.3", "0.6.3", "0.6.4", "0.6.4", "0.6.4", "0.6.4", "0.6.4", "0.6.5", "0.6.5", "0.6.5", "0.6.5", "0.6.5", "0.6.6", "0.6.6", "0.6.6", "0.6.6", "0.6.6", "0.6.7", "0.6.7", "0.6.7", "0.6.7", "0.6.7", "0.6.8", "0.6.8", "0.6.8", "0.6.8", "0.6.8", "0.6.9", "0.6.9", "0.6.9", "0.6.9", "0.6.9", "0.7.0", "0.7.0", "0.7.0", "0.7.0", "0.7.0", "0.7.1", "0.7.1", "0.7.1", "0.7.1", "0.7.1", "0.7.2", "0.7.2", "0.7.2", "0.7.2", "0.7.2", "0.7.3", "0.7.3", "0.7.3", "0.7.3", "0.7.3", "0.7.4", "0.7.4", "0.7.4", "0.7.4", "0.7.4", "0.7.5", "0.7.5", "0.7.5", "0.7.5", "0.7.5", "0.7.6", "0.7.6", "0.7.6", "0.7.6", "0.7.6", "0.7.7", "0.7.7", "0.7.7", "0.7.7", "0.7.7", "0.7.8", "0.7.8", "0.7.8", "0.7.8", "0.7.8", "0.7.9", "0.7.9", "0.7.9", "0.7.9", "0.7.9", "0.8.0", "0.8.0", "0.8.0", "0.8.0", "0.8.0", "0.8.1", "0.8.1", "0.8.1", "0.8.1", "0.8.1", "0.8.2", "0.8.2", "0.8.2", "0.8.2", "0.8.2", "0.8.3", "0.8.3", "0.8.3", "0.8.3", "0.8.3", "0.8.4", "0.8.4", "0.8.4", "0.8.4", "0.8.4", "0.8.5", "0.8.5", "0.8.5", "0.8.5", "0.8.5", "0.8.6", "0.8.6", "0.8.6", "0.8.6", "0.8.6", "0.8.7", "0.8.7", "0.8.7", "0.8.7", "0.8.7", "0.8.8", "0.8.8", "0.8.8", "0.8.8", "0.8.8", "0.8.9", "0.8.9", "0.8.9", "0.8.9", "0.8.9", "0.9.0", "0.9.0", "0.9.0", "0.9.0", "0.9.0", "0.9.1", "0.9.1", "0.9.1", "0.9.1", "0.9.1", "0.9.2", "0.9.2", "0.9.2", "0.9.2", "0.9.2", "0.9.3", "0.9.3", "0.9.3", "0.9.3", "0.9.3", "0.9.4", "0.9.4", "0.9.4", "0.9.4", "0.9.4", "0.9.5", "0.9.5", "0.9.5", "0.9.5", "0.9.5", "0.9.6", "0.9.6", "0.9.6", "0.9.6", "0.9.6", "0.9.7", "0.9.7", "0.9.7", "0.9.7", "0.9.7", "0.9.8", "0.9.8", "0.9.8", "0.9.8", "0.9.8", "0.9.9", "0.9.9", "0.9.9", "0.9.9", "0.9.9"] | |
, bench "semver grid'" $ nf (grid' 80) ["0.0.0", "0.0.0", "0.0.0", "0.0.0", "0.0.0", "0.0.1", "0.0.1", "0.0.1", "0.0.1", "0.0.1", "0.0.2", "0.0.2", "0.0.2", "0.0.2", "0.0.2", "0.0.3", "0.0.3", "0.0.3", "0.0.3", "0.0.3", "0.0.4", "0.0.4", "0.0.4", "0.0.4", "0.0.4", "0.0.5", "0.0.5", "0.0.5", "0.0.5", "0.0.5", "0.0.6", "0.0.6", "0.0.6", "0.0.6", "0.0.6", "0.0.7", "0.0.7", "0.0.7", "0.0.7", "0.0.7", "0.0.8", "0.0.8", "0.0.8", "0.0.8", "0.0.8", "0.0.9", "0.0.9", "0.0.9", "0.0.9", "0.0.9", "0.1.0", "0.1.0", "0.1.0", "0.1.0", "0.1.0", "0.1.1", "0.1.1", "0.1.1", "0.1.1", "0.1.1", "0.1.2", "0.1.2", "0.1.2", "0.1.2", "0.1.2", "0.1.3", "0.1.3", "0.1.3", "0.1.3", "0.1.3", "0.1.4", "0.1.4", "0.1.4", "0.1.4", "0.1.4", "0.1.5", "0.1.5", "0.1.5", "0.1.5", "0.1.5", "0.1.6", "0.1.6", "0.1.6", "0.1.6", "0.1.6", "0.1.7", "0.1.7", "0.1.7", "0.1.7", "0.1.7", "0.1.8", "0.1.8", "0.1.8", "0.1.8", "0.1.8", "0.1.9", "0.1.9", "0.1.9", "0.1.9", "0.1.9", "0.2.0", "0.2.0", "0.2.0", "0.2.0", "0.2.0", "0.2.1", "0.2.1", "0.2.1", "0.2.1", "0.2.1", "0.2.2", "0.2.2", "0.2.2", "0.2.2", "0.2.2", "0.2.3", "0.2.3", "0.2.3", "0.2.3", "0.2.3", "0.2.4", "0.2.4", "0.2.4", "0.2.4", "0.2.4", "0.2.5", "0.2.5", "0.2.5", "0.2.5", "0.2.5", "0.2.6", "0.2.6", "0.2.6", "0.2.6", "0.2.6", "0.2.7", "0.2.7", "0.2.7", "0.2.7", "0.2.7", "0.2.8", "0.2.8", "0.2.8", "0.2.8", "0.2.8", "0.2.9", "0.2.9", "0.2.9", "0.2.9", "0.2.9", "0.3.0", "0.3.0", "0.3.0", "0.3.0", "0.3.0", "0.3.1", "0.3.1", "0.3.1", "0.3.1", "0.3.1", "0.3.2", "0.3.2", "0.3.2", "0.3.2", "0.3.2", "0.3.3", "0.3.3", "0.3.3", "0.3.3", "0.3.3", "0.3.4", "0.3.4", "0.3.4", "0.3.4", "0.3.4", "0.3.5", "0.3.5", "0.3.5", "0.3.5", "0.3.5", "0.3.6", "0.3.6", "0.3.6", "0.3.6", "0.3.6", "0.3.7", "0.3.7", "0.3.7", "0.3.7", "0.3.7", "0.3.8", "0.3.8", "0.3.8", "0.3.8", "0.3.8", "0.3.9", "0.3.9", "0.3.9", "0.3.9", "0.3.9", "0.4.0", "0.4.0", "0.4.0", "0.4.0", "0.4.0", "0.4.1", "0.4.1", "0.4.1", "0.4.1", "0.4.1", "0.4.2", "0.4.2", "0.4.2", "0.4.2", "0.4.2", "0.4.3", "0.4.3", "0.4.3", "0.4.3", "0.4.3", "0.4.4", "0.4.4", "0.4.4", "0.4.4", "0.4.4", "0.4.5", "0.4.5", "0.4.5", "0.4.5", "0.4.5", "0.4.6", "0.4.6", "0.4.6", "0.4.6", "0.4.6", "0.4.7", "0.4.7", "0.4.7", "0.4.7", "0.4.7", "0.4.8", "0.4.8", "0.4.8", "0.4.8", "0.4.8", "0.4.9", "0.4.9", "0.4.9", "0.4.9", "0.4.9", "0.5.0", "0.5.0", "0.5.0", "0.5.0", "0.5.0", "0.5.1", "0.5.1", "0.5.1", "0.5.1", "0.5.1", "0.5.2", "0.5.2", "0.5.2", "0.5.2", "0.5.2", "0.5.3", "0.5.3", "0.5.3", "0.5.3", "0.5.3", "0.5.4", "0.5.4", "0.5.4", "0.5.4", "0.5.4", "0.5.5", "0.5.5", "0.5.5", "0.5.5", "0.5.5", "0.5.6", "0.5.6", "0.5.6", "0.5.6", "0.5.6", "0.5.7", "0.5.7", "0.5.7", "0.5.7", "0.5.7", "0.5.8", "0.5.8", "0.5.8", "0.5.8", "0.5.8", "0.5.9", "0.5.9", "0.5.9", "0.5.9", "0.5.9", "0.6.0", "0.6.0", "0.6.0", "0.6.0", "0.6.0", "0.6.1", "0.6.1", "0.6.1", "0.6.1", "0.6.1", "0.6.2", "0.6.2", "0.6.2", "0.6.2", "0.6.2", "0.6.3", "0.6.3", "0.6.3", "0.6.3", "0.6.3", "0.6.4", "0.6.4", "0.6.4", "0.6.4", "0.6.4", "0.6.5", "0.6.5", "0.6.5", "0.6.5", "0.6.5", "0.6.6", "0.6.6", "0.6.6", "0.6.6", "0.6.6", "0.6.7", "0.6.7", "0.6.7", "0.6.7", "0.6.7", "0.6.8", "0.6.8", "0.6.8", "0.6.8", "0.6.8", "0.6.9", "0.6.9", "0.6.9", "0.6.9", "0.6.9", "0.7.0", "0.7.0", "0.7.0", "0.7.0", "0.7.0", "0.7.1", "0.7.1", "0.7.1", "0.7.1", "0.7.1", "0.7.2", "0.7.2", "0.7.2", "0.7.2", "0.7.2", "0.7.3", "0.7.3", "0.7.3", "0.7.3", "0.7.3", "0.7.4", "0.7.4", "0.7.4", "0.7.4", "0.7.4", "0.7.5", "0.7.5", "0.7.5", "0.7.5", "0.7.5", "0.7.6", "0.7.6", "0.7.6", "0.7.6", "0.7.6", "0.7.7", "0.7.7", "0.7.7", "0.7.7", "0.7.7", "0.7.8", "0.7.8", "0.7.8", "0.7.8", "0.7.8", "0.7.9", "0.7.9", "0.7.9", "0.7.9", "0.7.9", "0.8.0", "0.8.0", "0.8.0", "0.8.0", "0.8.0", "0.8.1", "0.8.1", "0.8.1", "0.8.1", "0.8.1", "0.8.2", "0.8.2", "0.8.2", "0.8.2", "0.8.2", "0.8.3", "0.8.3", "0.8.3", "0.8.3", "0.8.3", "0.8.4", "0.8.4", "0.8.4", "0.8.4", "0.8.4", "0.8.5", "0.8.5", "0.8.5", "0.8.5", "0.8.5", "0.8.6", "0.8.6", "0.8.6", "0.8.6", "0.8.6", "0.8.7", "0.8.7", "0.8.7", "0.8.7", "0.8.7", "0.8.8", "0.8.8", "0.8.8", "0.8.8", "0.8.8", "0.8.9", "0.8.9", "0.8.9", "0.8.9", "0.8.9", "0.9.0", "0.9.0", "0.9.0", "0.9.0", "0.9.0", "0.9.1", "0.9.1", "0.9.1", "0.9.1", "0.9.1", "0.9.2", "0.9.2", "0.9.2", "0.9.2", "0.9.2", "0.9.3", "0.9.3", "0.9.3", "0.9.3", "0.9.3", "0.9.4", "0.9.4", "0.9.4", "0.9.4", "0.9.4", "0.9.5", "0.9.5", "0.9.5", "0.9.5", "0.9.5", "0.9.6", "0.9.6", "0.9.6", "0.9.6", "0.9.6", "0.9.7", "0.9.7", "0.9.7", "0.9.7", "0.9.7", "0.9.8", "0.9.8", "0.9.8", "0.9.8", "0.9.8", "0.9.9", "0.9.9", "0.9.9", "0.9.9", "0.9.9"] | |
, bench "pvp grid" $ nf (grid 80) ["0.0.0.0", "0.0.0.0", "0.0.0.0", "0.0.0.0", "0.0.0.0", "0.0.0.1", "0.0.0.1", "0.0.0.1", "0.0.0.1", "0.0.0.1", "0.0.0.2", "0.0.0.2", "0.0.0.2", "0.0.0.2", "0.0.0.2", "0.0.0.3", "0.0.0.3", "0.0.0.3", "0.0.0.3", "0.0.0.3", "0.0.0.4", "0.0.0.4", "0.0.0.4", "0.0.0.4", "0.0.0.4", "0.0.0.5", "0.0.0.5", "0.0.0.5", "0.0.0.5", "0.0.0.5", "0.0.0.6", "0.0.0.6", "0.0.0.6", "0.0.0.6", "0.0.0.6", "0.0.0.7", "0.0.0.7", "0.0.0.7", "0.0.0.7", "0.0.0.7", "0.0.0.8", "0.0.0.8", "0.0.0.8", "0.0.0.8", "0.0.0.8", "0.0.0.9", "0.0.0.9", "0.0.0.9", "0.0.0.9", "0.0.0.9", "0.0.1.0", "0.0.1.0", "0.0.1.0", "0.0.1.0", "0.0.1.0", "0.0.1.1", "0.0.1.1", "0.0.1.1", "0.0.1.1", "0.0.1.1", "0.0.1.2", "0.0.1.2", "0.0.1.2", "0.0.1.2", "0.0.1.2", "0.0.1.3", "0.0.1.3", "0.0.1.3", "0.0.1.3", "0.0.1.3", "0.0.1.4", "0.0.1.4", "0.0.1.4", "0.0.1.4", "0.0.1.4", "0.0.1.5", "0.0.1.5", "0.0.1.5", "0.0.1.5", "0.0.1.5", "0.0.1.6", "0.0.1.6", "0.0.1.6", "0.0.1.6", "0.0.1.6", "0.0.1.7", "0.0.1.7", "0.0.1.7", "0.0.1.7", "0.0.1.7", "0.0.1.8", "0.0.1.8", "0.0.1.8", "0.0.1.8", "0.0.1.8", "0.0.1.9", "0.0.1.9", "0.0.1.9", "0.0.1.9", "0.0.1.9", "0.0.2.0", "0.0.2.0", "0.0.2.0", "0.0.2.0", "0.0.2.0", "0.0.2.1", "0.0.2.1", "0.0.2.1", "0.0.2.1", "0.0.2.1", "0.0.2.2", "0.0.2.2", "0.0.2.2", "0.0.2.2", "0.0.2.2", "0.0.2.3", "0.0.2.3", "0.0.2.3", "0.0.2.3", "0.0.2.3", "0.0.2.4", "0.0.2.4", "0.0.2.4", "0.0.2.4", "0.0.2.4", "0.0.2.5", "0.0.2.5", "0.0.2.5", "0.0.2.5", "0.0.2.5", "0.0.2.6", "0.0.2.6", "0.0.2.6", "0.0.2.6", "0.0.2.6", "0.0.2.7", "0.0.2.7", "0.0.2.7", "0.0.2.7", "0.0.2.7", "0.0.2.8", "0.0.2.8", "0.0.2.8", "0.0.2.8", "0.0.2.8", "0.0.2.9", "0.0.2.9", "0.0.2.9", "0.0.2.9", "0.0.2.9", "0.0.3.0", "0.0.3.0", "0.0.3.0", "0.0.3.0", "0.0.3.0", "0.0.3.1", "0.0.3.1", "0.0.3.1", "0.0.3.1", "0.0.3.1", "0.0.3.2", "0.0.3.2", "0.0.3.2", "0.0.3.2", "0.0.3.2", "0.0.3.3", "0.0.3.3", "0.0.3.3", "0.0.3.3", "0.0.3.3", "0.0.3.4", "0.0.3.4", "0.0.3.4", "0.0.3.4", "0.0.3.4", "0.0.3.5", "0.0.3.5", "0.0.3.5", "0.0.3.5", "0.0.3.5", "0.0.3.6", "0.0.3.6", "0.0.3.6", "0.0.3.6", "0.0.3.6", "0.0.3.7", "0.0.3.7", "0.0.3.7", "0.0.3.7", "0.0.3.7", "0.0.3.8", "0.0.3.8", "0.0.3.8", "0.0.3.8", "0.0.3.8", "0.0.3.9", "0.0.3.9", "0.0.3.9", "0.0.3.9", "0.0.3.9", "0.0.4.0", "0.0.4.0", "0.0.4.0", "0.0.4.0", "0.0.4.0", "0.0.4.1", "0.0.4.1", "0.0.4.1", "0.0.4.1", "0.0.4.1", "0.0.4.2", "0.0.4.2", "0.0.4.2", "0.0.4.2", "0.0.4.2", "0.0.4.3", "0.0.4.3", "0.0.4.3", "0.0.4.3", "0.0.4.3", "0.0.4.4", "0.0.4.4", "0.0.4.4", "0.0.4.4", "0.0.4.4", "0.0.4.5", "0.0.4.5", "0.0.4.5", "0.0.4.5", "0.0.4.5", "0.0.4.6", "0.0.4.6", "0.0.4.6", "0.0.4.6", "0.0.4.6", "0.0.4.7", "0.0.4.7", "0.0.4.7", "0.0.4.7", "0.0.4.7", "0.0.4.8", "0.0.4.8", "0.0.4.8", "0.0.4.8", "0.0.4.8", "0.0.4.9", "0.0.4.9", "0.0.4.9", "0.0.4.9", "0.0.4.9", "0.0.5.0", "0.0.5.0", "0.0.5.0", "0.0.5.0", "0.0.5.0", "0.0.5.1", "0.0.5.1", "0.0.5.1", "0.0.5.1", "0.0.5.1", "0.0.5.2", "0.0.5.2", "0.0.5.2", "0.0.5.2", "0.0.5.2", "0.0.5.3", "0.0.5.3", "0.0.5.3", "0.0.5.3", "0.0.5.3", "0.0.5.4", "0.0.5.4", "0.0.5.4", "0.0.5.4", "0.0.5.4", "0.0.5.5", "0.0.5.5", "0.0.5.5", "0.0.5.5", "0.0.5.5", "0.0.5.6", "0.0.5.6", "0.0.5.6", "0.0.5.6", "0.0.5.6", "0.0.5.7", "0.0.5.7", "0.0.5.7", "0.0.5.7", "0.0.5.7", "0.0.5.8", "0.0.5.8", "0.0.5.8", "0.0.5.8", "0.0.5.8", "0.0.5.9", "0.0.5.9", "0.0.5.9", "0.0.5.9", "0.0.5.9", "0.0.6.0", "0.0.6.0", "0.0.6.0", "0.0.6.0", "0.0.6.0", "0.0.6.1", "0.0.6.1", "0.0.6.1", "0.0.6.1", "0.0.6.1", "0.0.6.2", "0.0.6.2", "0.0.6.2", "0.0.6.2", "0.0.6.2", "0.0.6.3", "0.0.6.3", "0.0.6.3", "0.0.6.3", "0.0.6.3", "0.0.6.4", "0.0.6.4", "0.0.6.4", "0.0.6.4", "0.0.6.4", "0.0.6.5", "0.0.6.5", "0.0.6.5", "0.0.6.5", "0.0.6.5", "0.0.6.6", "0.0.6.6", "0.0.6.6", "0.0.6.6", "0.0.6.6", "0.0.6.7", "0.0.6.7", "0.0.6.7", "0.0.6.7", "0.0.6.7", "0.0.6.8", "0.0.6.8", "0.0.6.8", "0.0.6.8", "0.0.6.8", "0.0.6.9", "0.0.6.9", "0.0.6.9", "0.0.6.9", "0.0.6.9", "0.0.7.0", "0.0.7.0", "0.0.7.0", "0.0.7.0", "0.0.7.0", "0.0.7.1", "0.0.7.1", "0.0.7.1", "0.0.7.1", "0.0.7.1", "0.0.7.2", "0.0.7.2", "0.0.7.2", "0.0.7.2", "0.0.7.2", "0.0.7.3", "0.0.7.3", "0.0.7.3", "0.0.7.3", "0.0.7.3", "0.0.7.4", "0.0.7.4", "0.0.7.4", "0.0.7.4", "0.0.7.4", "0.0.7.5", "0.0.7.5", "0.0.7.5", "0.0.7.5", "0.0.7.5", "0.0.7.6", "0.0.7.6", "0.0.7.6", "0.0.7.6", "0.0.7.6", "0.0.7.7", "0.0.7.7", "0.0.7.7", "0.0.7.7", "0.0.7.7", "0.0.7.8", "0.0.7.8", "0.0.7.8", "0.0.7.8", "0.0.7.8", "0.0.7.9", "0.0.7.9", "0.0.7.9", "0.0.7.9", "0.0.7.9", "0.0.8.0", "0.0.8.0", "0.0.8.0", "0.0.8.0", "0.0.8.0", "0.0.8.1", "0.0.8.1", "0.0.8.1", "0.0.8.1", "0.0.8.1", "0.0.8.2", "0.0.8.2", "0.0.8.2", "0.0.8.2", "0.0.8.2", "0.0.8.3", "0.0.8.3", "0.0.8.3", "0.0.8.3", "0.0.8.3", "0.0.8.4", "0.0.8.4", "0.0.8.4", "0.0.8.4", "0.0.8.4", "0.0.8.5", "0.0.8.5", "0.0.8.5", "0.0.8.5", "0.0.8.5", "0.0.8.6", "0.0.8.6", "0.0.8.6", "0.0.8.6", "0.0.8.6", "0.0.8.7", "0.0.8.7", "0.0.8.7", "0.0.8.7", "0.0.8.7", "0.0.8.8", "0.0.8.8", "0.0.8.8", "0.0.8.8", "0.0.8.8", "0.0.8.9", "0.0.8.9", "0.0.8.9", "0.0.8.9", "0.0.8.9", "0.0.9.0", "0.0.9.0", "0.0.9.0", "0.0.9.0", "0.0.9.0", "0.0.9.1", "0.0.9.1", "0.0.9.1", "0.0.9.1", "0.0.9.1", "0.0.9.2", "0.0.9.2", "0.0.9.2", "0.0.9.2", "0.0.9.2", "0.0.9.3", "0.0.9.3", "0.0.9.3", "0.0.9.3", "0.0.9.3", "0.0.9.4", "0.0.9.4", "0.0.9.4", "0.0.9.4", "0.0.9.4", "0.0.9.5", "0.0.9.5", "0.0.9.5", "0.0.9.5", "0.0.9.5", "0.0.9.6", "0.0.9.6", "0.0.9.6", "0.0.9.6", "0.0.9.6", "0.0.9.7", "0.0.9.7", "0.0.9.7", "0.0.9.7", "0.0.9.7", "0.0.9.8", "0.0.9.8", "0.0.9.8", "0.0.9.8", "0.0.9.8", "0.0.9.9", "0.0.9.9", "0.0.9.9", "0.0.9.9", "0.0.9.9"] | |
, bench "pvp grid'" $ nf (grid' 80) ["0.0.0.0", "0.0.0.0", "0.0.0.0", "0.0.0.0", "0.0.0.0", "0.0.0.1", "0.0.0.1", "0.0.0.1", "0.0.0.1", "0.0.0.1", "0.0.0.2", "0.0.0.2", "0.0.0.2", "0.0.0.2", "0.0.0.2", "0.0.0.3", "0.0.0.3", "0.0.0.3", "0.0.0.3", "0.0.0.3", "0.0.0.4", "0.0.0.4", "0.0.0.4", "0.0.0.4", "0.0.0.4", "0.0.0.5", "0.0.0.5", "0.0.0.5", "0.0.0.5", "0.0.0.5", "0.0.0.6", "0.0.0.6", "0.0.0.6", "0.0.0.6", "0.0.0.6", "0.0.0.7", "0.0.0.7", "0.0.0.7", "0.0.0.7", "0.0.0.7", "0.0.0.8", "0.0.0.8", "0.0.0.8", "0.0.0.8", "0.0.0.8", "0.0.0.9", "0.0.0.9", "0.0.0.9", "0.0.0.9", "0.0.0.9", "0.0.1.0", "0.0.1.0", "0.0.1.0", "0.0.1.0", "0.0.1.0", "0.0.1.1", "0.0.1.1", "0.0.1.1", "0.0.1.1", "0.0.1.1", "0.0.1.2", "0.0.1.2", "0.0.1.2", "0.0.1.2", "0.0.1.2", "0.0.1.3", "0.0.1.3", "0.0.1.3", "0.0.1.3", "0.0.1.3", "0.0.1.4", "0.0.1.4", "0.0.1.4", "0.0.1.4", "0.0.1.4", "0.0.1.5", "0.0.1.5", "0.0.1.5", "0.0.1.5", "0.0.1.5", "0.0.1.6", "0.0.1.6", "0.0.1.6", "0.0.1.6", "0.0.1.6", "0.0.1.7", "0.0.1.7", "0.0.1.7", "0.0.1.7", "0.0.1.7", "0.0.1.8", "0.0.1.8", "0.0.1.8", "0.0.1.8", "0.0.1.8", "0.0.1.9", "0.0.1.9", "0.0.1.9", "0.0.1.9", "0.0.1.9", "0.0.2.0", "0.0.2.0", "0.0.2.0", "0.0.2.0", "0.0.2.0", "0.0.2.1", "0.0.2.1", "0.0.2.1", "0.0.2.1", "0.0.2.1", "0.0.2.2", "0.0.2.2", "0.0.2.2", "0.0.2.2", "0.0.2.2", "0.0.2.3", "0.0.2.3", "0.0.2.3", "0.0.2.3", "0.0.2.3", "0.0.2.4", "0.0.2.4", "0.0.2.4", "0.0.2.4", "0.0.2.4", "0.0.2.5", "0.0.2.5", "0.0.2.5", "0.0.2.5", "0.0.2.5", "0.0.2.6", "0.0.2.6", "0.0.2.6", "0.0.2.6", "0.0.2.6", "0.0.2.7", "0.0.2.7", "0.0.2.7", "0.0.2.7", "0.0.2.7", "0.0.2.8", "0.0.2.8", "0.0.2.8", "0.0.2.8", "0.0.2.8", "0.0.2.9", "0.0.2.9", "0.0.2.9", "0.0.2.9", "0.0.2.9", "0.0.3.0", "0.0.3.0", "0.0.3.0", "0.0.3.0", "0.0.3.0", "0.0.3.1", "0.0.3.1", "0.0.3.1", "0.0.3.1", "0.0.3.1", "0.0.3.2", "0.0.3.2", "0.0.3.2", "0.0.3.2", "0.0.3.2", "0.0.3.3", "0.0.3.3", "0.0.3.3", "0.0.3.3", "0.0.3.3", "0.0.3.4", "0.0.3.4", "0.0.3.4", "0.0.3.4", "0.0.3.4", "0.0.3.5", "0.0.3.5", "0.0.3.5", "0.0.3.5", "0.0.3.5", "0.0.3.6", "0.0.3.6", "0.0.3.6", "0.0.3.6", "0.0.3.6", "0.0.3.7", "0.0.3.7", "0.0.3.7", "0.0.3.7", "0.0.3.7", "0.0.3.8", "0.0.3.8", "0.0.3.8", "0.0.3.8", "0.0.3.8", "0.0.3.9", "0.0.3.9", "0.0.3.9", "0.0.3.9", "0.0.3.9", "0.0.4.0", "0.0.4.0", "0.0.4.0", "0.0.4.0", "0.0.4.0", "0.0.4.1", "0.0.4.1", "0.0.4.1", "0.0.4.1", "0.0.4.1", "0.0.4.2", "0.0.4.2", "0.0.4.2", "0.0.4.2", "0.0.4.2", "0.0.4.3", "0.0.4.3", "0.0.4.3", "0.0.4.3", "0.0.4.3", "0.0.4.4", "0.0.4.4", "0.0.4.4", "0.0.4.4", "0.0.4.4", "0.0.4.5", "0.0.4.5", "0.0.4.5", "0.0.4.5", "0.0.4.5", "0.0.4.6", "0.0.4.6", "0.0.4.6", "0.0.4.6", "0.0.4.6", "0.0.4.7", "0.0.4.7", "0.0.4.7", "0.0.4.7", "0.0.4.7", "0.0.4.8", "0.0.4.8", "0.0.4.8", "0.0.4.8", "0.0.4.8", "0.0.4.9", "0.0.4.9", "0.0.4.9", "0.0.4.9", "0.0.4.9", "0.0.5.0", "0.0.5.0", "0.0.5.0", "0.0.5.0", "0.0.5.0", "0.0.5.1", "0.0.5.1", "0.0.5.1", "0.0.5.1", "0.0.5.1", "0.0.5.2", "0.0.5.2", "0.0.5.2", "0.0.5.2", "0.0.5.2", "0.0.5.3", "0.0.5.3", "0.0.5.3", "0.0.5.3", "0.0.5.3", "0.0.5.4", "0.0.5.4", "0.0.5.4", "0.0.5.4", "0.0.5.4", "0.0.5.5", "0.0.5.5", "0.0.5.5", "0.0.5.5", "0.0.5.5", "0.0.5.6", "0.0.5.6", "0.0.5.6", "0.0.5.6", "0.0.5.6", "0.0.5.7", "0.0.5.7", "0.0.5.7", "0.0.5.7", "0.0.5.7", "0.0.5.8", "0.0.5.8", "0.0.5.8", "0.0.5.8", "0.0.5.8", "0.0.5.9", "0.0.5.9", "0.0.5.9", "0.0.5.9", "0.0.5.9", "0.0.6.0", "0.0.6.0", "0.0.6.0", "0.0.6.0", "0.0.6.0", "0.0.6.1", "0.0.6.1", "0.0.6.1", "0.0.6.1", "0.0.6.1", "0.0.6.2", "0.0.6.2", "0.0.6.2", "0.0.6.2", "0.0.6.2", "0.0.6.3", "0.0.6.3", "0.0.6.3", "0.0.6.3", "0.0.6.3", "0.0.6.4", "0.0.6.4", "0.0.6.4", "0.0.6.4", "0.0.6.4", "0.0.6.5", "0.0.6.5", "0.0.6.5", "0.0.6.5", "0.0.6.5", "0.0.6.6", "0.0.6.6", "0.0.6.6", "0.0.6.6", "0.0.6.6", "0.0.6.7", "0.0.6.7", "0.0.6.7", "0.0.6.7", "0.0.6.7", "0.0.6.8", "0.0.6.8", "0.0.6.8", "0.0.6.8", "0.0.6.8", "0.0.6.9", "0.0.6.9", "0.0.6.9", "0.0.6.9", "0.0.6.9", "0.0.7.0", "0.0.7.0", "0.0.7.0", "0.0.7.0", "0.0.7.0", "0.0.7.1", "0.0.7.1", "0.0.7.1", "0.0.7.1", "0.0.7.1", "0.0.7.2", "0.0.7.2", "0.0.7.2", "0.0.7.2", "0.0.7.2", "0.0.7.3", "0.0.7.3", "0.0.7.3", "0.0.7.3", "0.0.7.3", "0.0.7.4", "0.0.7.4", "0.0.7.4", "0.0.7.4", "0.0.7.4", "0.0.7.5", "0.0.7.5", "0.0.7.5", "0.0.7.5", "0.0.7.5", "0.0.7.6", "0.0.7.6", "0.0.7.6", "0.0.7.6", "0.0.7.6", "0.0.7.7", "0.0.7.7", "0.0.7.7", "0.0.7.7", "0.0.7.7", "0.0.7.8", "0.0.7.8", "0.0.7.8", "0.0.7.8", "0.0.7.8", "0.0.7.9", "0.0.7.9", "0.0.7.9", "0.0.7.9", "0.0.7.9", "0.0.8.0", "0.0.8.0", "0.0.8.0", "0.0.8.0", "0.0.8.0", "0.0.8.1", "0.0.8.1", "0.0.8.1", "0.0.8.1", "0.0.8.1", "0.0.8.2", "0.0.8.2", "0.0.8.2", "0.0.8.2", "0.0.8.2", "0.0.8.3", "0.0.8.3", "0.0.8.3", "0.0.8.3", "0.0.8.3", "0.0.8.4", "0.0.8.4", "0.0.8.4", "0.0.8.4", "0.0.8.4", "0.0.8.5", "0.0.8.5", "0.0.8.5", "0.0.8.5", "0.0.8.5", "0.0.8.6", "0.0.8.6", "0.0.8.6", "0.0.8.6", "0.0.8.6", "0.0.8.7", "0.0.8.7", "0.0.8.7", "0.0.8.7", "0.0.8.7", "0.0.8.8", "0.0.8.8", "0.0.8.8", "0.0.8.8", "0.0.8.8", "0.0.8.9", "0.0.8.9", "0.0.8.9", "0.0.8.9", "0.0.8.9", "0.0.9.0", "0.0.9.0", "0.0.9.0", "0.0.9.0", "0.0.9.0", "0.0.9.1", "0.0.9.1", "0.0.9.1", "0.0.9.1", "0.0.9.1", "0.0.9.2", "0.0.9.2", "0.0.9.2", "0.0.9.2", "0.0.9.2", "0.0.9.3", "0.0.9.3", "0.0.9.3", "0.0.9.3", "0.0.9.3", "0.0.9.4", "0.0.9.4", "0.0.9.4", "0.0.9.4", "0.0.9.4", "0.0.9.5", "0.0.9.5", "0.0.9.5", "0.0.9.5", "0.0.9.5", "0.0.9.6", "0.0.9.6", "0.0.9.6", "0.0.9.6", "0.0.9.6", "0.0.9.7", "0.0.9.7", "0.0.9.7", "0.0.9.7", "0.0.9.7", "0.0.9.8", "0.0.9.8", "0.0.9.8", "0.0.9.8", "0.0.9.8", "0.0.9.9", "0.0.9.9", "0.0.9.9", "0.0.9.9", "0.0.9.9"] | |
] | |
, bgroup "100" [ bench "semver grid" $ nf (grid 80) ["0.0.0", "0.0.1", "0.0.2", "0.0.3", "0.0.4", "0.0.5", "0.0.6", "0.0.7", "0.0.8", "0.0.9", "0.1.0", "0.1.1", "0.1.2", "0.1.3", "0.1.4", "0.1.5", "0.1.6", "0.1.7", "0.1.8", "0.1.9", "0.2.0", "0.2.1", "0.2.2", "0.2.3", "0.2.4", "0.2.5", "0.2.6", "0.2.7", "0.2.8", "0.2.9", "0.3.0", "0.3.1", "0.3.2", "0.3.3", "0.3.4", "0.3.5", "0.3.6", "0.3.7", "0.3.8", "0.3.9", "0.4.0", "0.4.1", "0.4.2", "0.4.3", "0.4.4", "0.4.5", "0.4.6", "0.4.7", "0.4.8", "0.4.9", "0.5.0", "0.5.1", "0.5.2", "0.5.3", "0.5.4", "0.5.5", "0.5.6", "0.5.7", "0.5.8", "0.5.9", "0.6.0", "0.6.1", "0.6.2", "0.6.3", "0.6.4", "0.6.5", "0.6.6", "0.6.7", "0.6.8", "0.6.9", "0.7.0", "0.7.1", "0.7.2", "0.7.3", "0.7.4", "0.7.5", "0.7.6", "0.7.7", "0.7.8", "0.7.9", "0.8.0", "0.8.1", "0.8.2", "0.8.3", "0.8.4", "0.8.5", "0.8.6", "0.8.7", "0.8.8", "0.8.9", "0.9.0", "0.9.1", "0.9.2", "0.9.3", "0.9.4", "0.9.5", "0.9.6", "0.9.7", "0.9.8", "0.9.9"] | |
, bench "semver grid'" $ nf (grid' 80) ["0.0.0", "0.0.1", "0.0.2", "0.0.3", "0.0.4", "0.0.5", "0.0.6", "0.0.7", "0.0.8", "0.0.9", "0.1.0", "0.1.1", "0.1.2", "0.1.3", "0.1.4", "0.1.5", "0.1.6", "0.1.7", "0.1.8", "0.1.9", "0.2.0", "0.2.1", "0.2.2", "0.2.3", "0.2.4", "0.2.5", "0.2.6", "0.2.7", "0.2.8", "0.2.9", "0.3.0", "0.3.1", "0.3.2", "0.3.3", "0.3.4", "0.3.5", "0.3.6", "0.3.7", "0.3.8", "0.3.9", "0.4.0", "0.4.1", "0.4.2", "0.4.3", "0.4.4", "0.4.5", "0.4.6", "0.4.7", "0.4.8", "0.4.9", "0.5.0", "0.5.1", "0.5.2", "0.5.3", "0.5.4", "0.5.5", "0.5.6", "0.5.7", "0.5.8", "0.5.9", "0.6.0", "0.6.1", "0.6.2", "0.6.3", "0.6.4", "0.6.5", "0.6.6", "0.6.7", "0.6.8", "0.6.9", "0.7.0", "0.7.1", "0.7.2", "0.7.3", "0.7.4", "0.7.5", "0.7.6", "0.7.7", "0.7.8", "0.7.9", "0.8.0", "0.8.1", "0.8.2", "0.8.3", "0.8.4", "0.8.5", "0.8.6", "0.8.7", "0.8.8", "0.8.9", "0.9.0", "0.9.1", "0.9.2", "0.9.3", "0.9.4", "0.9.5", "0.9.6", "0.9.7", "0.9.8", "0.9.9"] | |
, bench "pvp grid" $ nf (grid 80) ["0.0.0.0", "0.0.0.1", "0.0.0.2", "0.0.0.3", "0.0.0.4", "0.0.0.5", "0.0.0.6", "0.0.0.7", "0.0.0.8", "0.0.0.9", "0.0.1.0", "0.0.1.1", "0.0.1.2", "0.0.1.3", "0.0.1.4", "0.0.1.5", "0.0.1.6", "0.0.1.7", "0.0.1.8", "0.0.1.9", "0.0.2.0", "0.0.2.1", "0.0.2.2", "0.0.2.3", "0.0.2.4", "0.0.2.5", "0.0.2.6", "0.0.2.7", "0.0.2.8", "0.0.2.9", "0.0.3.0", "0.0.3.1", "0.0.3.2", "0.0.3.3", "0.0.3.4", "0.0.3.5", "0.0.3.6", "0.0.3.7", "0.0.3.8", "0.0.3.9", "0.0.4.0", "0.0.4.1", "0.0.4.2", "0.0.4.3", "0.0.4.4", "0.0.4.5", "0.0.4.6", "0.0.4.7", "0.0.4.8", "0.0.4.9", "0.0.5.0", "0.0.5.1", "0.0.5.2", "0.0.5.3", "0.0.5.4", "0.0.5.5", "0.0.5.6", "0.0.5.7", "0.0.5.8", "0.0.5.9", "0.0.6.0", "0.0.6.1", "0.0.6.2", "0.0.6.3", "0.0.6.4", "0.0.6.5", "0.0.6.6", "0.0.6.7", "0.0.6.8", "0.0.6.9", "0.0.7.0", "0.0.7.1", "0.0.7.2", "0.0.7.3", "0.0.7.4", "0.0.7.5", "0.0.7.6", "0.0.7.7", "0.0.7.8", "0.0.7.9", "0.0.8.0", "0.0.8.1", "0.0.8.2", "0.0.8.3", "0.0.8.4", "0.0.8.5", "0.0.8.6", "0.0.8.7", "0.0.8.8", "0.0.8.9", "0.0.9.0", "0.0.9.1", "0.0.9.2", "0.0.9.3", "0.0.9.4", "0.0.9.5", "0.0.9.6", "0.0.9.7", "0.0.9.8", "0.0.9.9"] | |
, bench "pvp grid'" $ nf (grid' 80) ["0.0.0.0", "0.0.0.1", "0.0.0.2", "0.0.0.3", "0.0.0.4", "0.0.0.5", "0.0.0.6", "0.0.0.7", "0.0.0.8", "0.0.0.9", "0.0.1.0", "0.0.1.1", "0.0.1.2", "0.0.1.3", "0.0.1.4", "0.0.1.5", "0.0.1.6", "0.0.1.7", "0.0.1.8", "0.0.1.9", "0.0.2.0", "0.0.2.1", "0.0.2.2", "0.0.2.3", "0.0.2.4", "0.0.2.5", "0.0.2.6", "0.0.2.7", "0.0.2.8", "0.0.2.9", "0.0.3.0", "0.0.3.1", "0.0.3.2", "0.0.3.3", "0.0.3.4", "0.0.3.5", "0.0.3.6", "0.0.3.7", "0.0.3.8", "0.0.3.9", "0.0.4.0", "0.0.4.1", "0.0.4.2", "0.0.4.3", "0.0.4.4", "0.0.4.5", "0.0.4.6", "0.0.4.7", "0.0.4.8", "0.0.4.9", "0.0.5.0", "0.0.5.1", "0.0.5.2", "0.0.5.3", "0.0.5.4", "0.0.5.5", "0.0.5.6", "0.0.5.7", "0.0.5.8", "0.0.5.9", "0.0.6.0", "0.0.6.1", "0.0.6.2", "0.0.6.3", "0.0.6.4", "0.0.6.5", "0.0.6.6", "0.0.6.7", "0.0.6.8", "0.0.6.9", "0.0.7.0", "0.0.7.1", "0.0.7.2", "0.0.7.3", "0.0.7.4", "0.0.7.5", "0.0.7.6", "0.0.7.7", "0.0.7.8", "0.0.7.9", "0.0.8.0", "0.0.8.1", "0.0.8.2", "0.0.8.3", "0.0.8.4", "0.0.8.5", "0.0.8.6", "0.0.8.7", "0.0.8.8", "0.0.8.9", "0.0.9.0", "0.0.9.1", "0.0.9.2", "0.0.9.3", "0.0.9.4", "0.0.9.5", "0.0.9.6", "0.0.9.7", "0.0.9.8", "0.0.9.9"] | |
] | |
, bgroup "50" [ bench "semver grid" $ nf (grid 80) ["0.0.0", "0.0.1", "0.0.2", "0.0.3", "0.0.4", "0.0.5", "0.0.6", "0.0.7", "0.0.8", "0.0.9", "0.1.0", "0.1.1", "0.1.2", "0.1.3", "0.1.4", "0.1.5", "0.1.6", "0.1.7", "0.1.8", "0.1.9", "0.2.0", "0.2.1", "0.2.2", "0.2.3", "0.2.4", "0.2.5", "0.2.6", "0.2.7", "0.2.8", "0.2.9", "0.3.0", "0.3.1", "0.3.2", "0.3.3", "0.3.4", "0.3.5", "0.3.6", "0.3.7", "0.3.8", "0.3.9", "0.4.0", "0.4.1", "0.4.2", "0.4.3", "0.4.4", "0.4.5", "0.4.6", "0.4.7", "0.4.8", "0.4.9", "0.5.0", "0.5.1", "0.5.2", "0.5.3", "0.5.4", "0.5.5", "0.5.6", "0.5.7", "0.5.8", "0.5.9", "0.6.0", "0.6.1", "0.6.2", "0.6.3", "0.6.4", "0.6.5", "0.6.6", "0.6.7", "0.6.8", "0.6.9", "0.7.0", "0.7.1", "0.7.2", "0.7.3", "0.7.4", "0.7.5", "0.7.6", "0.7.7", "0.7.8", "0.7.9", "0.8.0", "0.8.1", "0.8.2", "0.8.3", "0.8.4", "0.8.5", "0.8.6", "0.8.7", "0.8.8", "0.8.9", "0.9.0", "0.9.1", "0.9.2", "0.9.3", "0.9.4", "0.9.5", "0.9.6", "0.9.7", "0.9.8", "0.9.9"] | |
, bench "semver grid'" $ nf (grid' 80) ["0.0.0", "0.0.1", "0.0.2", "0.0.3", "0.0.4", "0.0.5", "0.0.6", "0.0.7", "0.0.8", "0.0.9", "0.1.0", "0.1.1", "0.1.2", "0.1.3", "0.1.4", "0.1.5", "0.1.6", "0.1.7", "0.1.8", "0.1.9", "0.2.0", "0.2.1", "0.2.2", "0.2.3", "0.2.4", "0.2.5", "0.2.6", "0.2.7", "0.2.8", "0.2.9", "0.3.0", "0.3.1", "0.3.2", "0.3.3", "0.3.4", "0.3.5", "0.3.6", "0.3.7", "0.3.8", "0.3.9", "0.4.0", "0.4.1", "0.4.2", "0.4.3", "0.4.4", "0.4.5", "0.4.6", "0.4.7", "0.4.8", "0.4.9", "0.5.0", "0.5.1", "0.5.2", "0.5.3", "0.5.4", "0.5.5", "0.5.6", "0.5.7", "0.5.8", "0.5.9", "0.6.0", "0.6.1", "0.6.2", "0.6.3", "0.6.4", "0.6.5", "0.6.6", "0.6.7", "0.6.8", "0.6.9", "0.7.0", "0.7.1", "0.7.2", "0.7.3", "0.7.4", "0.7.5", "0.7.6", "0.7.7", "0.7.8", "0.7.9", "0.8.0", "0.8.1", "0.8.2", "0.8.3", "0.8.4", "0.8.5", "0.8.6", "0.8.7", "0.8.8", "0.8.9", "0.9.0", "0.9.1", "0.9.2", "0.9.3", "0.9.4", "0.9.5", "0.9.6", "0.9.7", "0.9.8", "0.9.9"] | |
, bench "pvp grid" $ nf (grid 80) ["0.0.0.0", "0.0.0.1", "0.0.0.2", "0.0.0.3", "0.0.0.4", "0.0.0.5", "0.0.0.6", "0.0.0.7", "0.0.0.8", "0.0.0.9", "0.0.1.0", "0.0.1.1", "0.0.1.2", "0.0.1.3", "0.0.1.4", "0.0.1.5", "0.0.1.6", "0.0.1.7", "0.0.1.8", "0.0.1.9", "0.0.2.0", "0.0.2.1", "0.0.2.2", "0.0.2.3", "0.0.2.4", "0.0.2.5", "0.0.2.6", "0.0.2.7", "0.0.2.8", "0.0.2.9", "0.0.3.0", "0.0.3.1", "0.0.3.2", "0.0.3.3", "0.0.3.4", "0.0.3.5", "0.0.3.6", "0.0.3.7", "0.0.3.8", "0.0.3.9", "0.0.4.0", "0.0.4.1", "0.0.4.2", "0.0.4.3", "0.0.4.4", "0.0.4.5", "0.0.4.6", "0.0.4.7", "0.0.4.8", "0.0.4.9", "0.0.5.0", "0.0.5.1", "0.0.5.2", "0.0.5.3", "0.0.5.4", "0.0.5.5", "0.0.5.6", "0.0.5.7", "0.0.5.8", "0.0.5.9", "0.0.6.0", "0.0.6.1", "0.0.6.2", "0.0.6.3", "0.0.6.4", "0.0.6.5", "0.0.6.6", "0.0.6.7", "0.0.6.8", "0.0.6.9", "0.0.7.0", "0.0.7.1", "0.0.7.2", "0.0.7.3", "0.0.7.4", "0.0.7.5", "0.0.7.6", "0.0.7.7", "0.0.7.8", "0.0.7.9", "0.0.8.0", "0.0.8.1", "0.0.8.2", "0.0.8.3", "0.0.8.4", "0.0.8.5", "0.0.8.6", "0.0.8.7", "0.0.8.8", "0.0.8.9", "0.0.9.0", "0.0.9.1", "0.0.9.2", "0.0.9.3", "0.0.9.4", "0.0.9.5", "0.0.9.6", "0.0.9.7", "0.0.9.8", "0.0.9.9"] | |
, bench "pvp grid'" $ nf (grid' 80) ["0.0.0.0", "0.0.0.1", "0.0.0.2", "0.0.0.3", "0.0.0.4", "0.0.0.5", "0.0.0.6", "0.0.0.7", "0.0.0.8", "0.0.0.9", "0.0.1.0", "0.0.1.1", "0.0.1.2", "0.0.1.3", "0.0.1.4", "0.0.1.5", "0.0.1.6", "0.0.1.7", "0.0.1.8", "0.0.1.9", "0.0.2.0", "0.0.2.1", "0.0.2.2", "0.0.2.3", "0.0.2.4", "0.0.2.5", "0.0.2.6", "0.0.2.7", "0.0.2.8", "0.0.2.9", "0.0.3.0", "0.0.3.1", "0.0.3.2", "0.0.3.3", "0.0.3.4", "0.0.3.5", "0.0.3.6", "0.0.3.7", "0.0.3.8", "0.0.3.9", "0.0.4.0", "0.0.4.1", "0.0.4.2", "0.0.4.3", "0.0.4.4", "0.0.4.5", "0.0.4.6", "0.0.4.7", "0.0.4.8", "0.0.4.9", "0.0.5.0", "0.0.5.1", "0.0.5.2", "0.0.5.3", "0.0.5.4", "0.0.5.5", "0.0.5.6", "0.0.5.7", "0.0.5.8", "0.0.5.9", "0.0.6.0", "0.0.6.1", "0.0.6.2", "0.0.6.3", "0.0.6.4", "0.0.6.5", "0.0.6.6", "0.0.6.7", "0.0.6.8", "0.0.6.9", "0.0.7.0", "0.0.7.1", "0.0.7.2", "0.0.7.3", "0.0.7.4", "0.0.7.5", "0.0.7.6", "0.0.7.7", "0.0.7.8", "0.0.7.9", "0.0.8.0", "0.0.8.1", "0.0.8.2", "0.0.8.3", "0.0.8.4", "0.0.8.5", "0.0.8.6", "0.0.8.7", "0.0.8.8", "0.0.8.9", "0.0.9.0", "0.0.9.1", "0.0.9.2", "0.0.9.3", "0.0.9.4", "0.0.9.5", "0.0.9.6", "0.0.9.7", "0.0.9.8", "0.0.9.9"] | |
] | |
, bgroup "30" [ bench "semver grid'" $ nf (grid' 80) ["0.0.0", "0.0.1", "0.0.2", "0.0.3", "0.0.4", "0.0.5", "0.0.6", "0.0.7", "0.0.8", "0.0.9", "0.1.0", "0.1.1", "0.1.2", "0.1.3", "0.1.4", "0.1.5", "0.1.6", "0.1.7", "0.1.8", "0.1.9", "0.2.0", "0.2.1", "0.2.2", "0.2.3", "0.2.4", "0.2.5", "0.2.6", "0.2.7", "0.2.8", "0.2.9"] | |
, bench "semver grid" $ nf (grid 80) ["0.0.0", "0.0.1", "0.0.2", "0.0.3", "0.0.4", "0.0.5", "0.0.6", "0.0.7", "0.0.8", "0.0.9", "0.1.0", "0.1.1", "0.1.2", "0.1.3", "0.1.4", "0.1.5", "0.1.6", "0.1.7", "0.1.8", "0.1.9", "0.2.0", "0.2.1", "0.2.2", "0.2.3", "0.2.4", "0.2.5", "0.2.6", "0.2.7", "0.2.8", "0.2.9"] | |
, bench "pvp grid'" $ nf (grid' 80) ["0.0.0.0", "0.0.0.1", "0.0.0.2", "0.0.0.3", "0.0.0.4", "0.0.0.5", "0.0.0.6", "0.0.0.7", "0.0.0.8", "0.0.0.9", "0.0.1.0", "0.0.1.1", "0.0.1.2", "0.0.1.3", "0.0.1.4", "0.0.1.5", "0.0.1.6", "0.0.1.7", "0.0.1.8", "0.0.1.9", "0.0.2.0", "0.0.2.1", "0.0.2.2", "0.0.2.3", "0.0.2.4", "0.0.2.5", "0.0.2.6", "0.0.2.7", "0.0.2.8", "0.0.2.9"] | |
, bench "pvp grid" $ nf (grid 80) ["0.0.0.0", "0.0.0.1", "0.0.0.2", "0.0.0.3", "0.0.0.4", "0.0.0.5", "0.0.0.6", "0.0.0.7", "0.0.0.8", "0.0.0.9", "0.0.1.0", "0.0.1.1", "0.0.1.2", "0.0.1.3", "0.0.1.4", "0.0.1.5", "0.0.1.6", "0.0.1.7", "0.0.1.8", "0.0.1.9", "0.0.2.0", "0.0.2.1", "0.0.2.2", "0.0.2.3", "0.0.2.4", "0.0.2.5", "0.0.2.6", "0.0.2.7", "0.0.2.8", "0.0.2.9"] | |
] | |
, bgroup "15" [ bench "semver grid" $ nf (grid 80) ["0.0.0", "0.0.1", "0.0.2", "0.0.3", "0.0.4", "0.0.5", "0.0.6", "0.0.7", "0.0.8", "0.0.9", "0.1.0", "0.1.1", "0.1.2", "0.1.3", "0.1.4"] | |
, bench "semver grid'" $ nf (grid' 80) ["0.0.0", "0.0.1", "0.0.2", "0.0.3", "0.0.4", "0.0.5", "0.0.6", "0.0.7", "0.0.8", "0.0.9", "0.1.0", "0.1.1", "0.1.2", "0.1.3", "0.1.4"] | |
, bench "pvp grid" $ nf (grid 80) ["0.0.0.0", "0.0.0.1", "0.0.0.2", "0.0.0.3", "0.0.0.4", "0.0.0.5", "0.0.0.6", "0.0.0.7", "0.0.0.8", "0.0.0.9", "0.0.1.0", "0.0.1.1", "0.0.1.2", "0.0.1.3", "0.0.1.4"] | |
, bench "pvp grid'" $ nf (grid' 80) ["0.0.0.0", "0.0.0.1", "0.0.0.2", "0.0.0.3", "0.0.0.4", "0.0.0.5", "0.0.0.6", "0.0.0.7", "0.0.0.8", "0.0.0.9", "0.0.1.0", "0.0.1.1", "0.0.1.2", "0.0.1.3", "0.0.1.4"] | |
] | |
, bgroup "5" [ bench "semver grid" $ nf (grid 80) ["0.0.0", "0.0.1", "0.0.2", "0.0.3", "0.0.4"] | |
, bench "semver grid'" $ nf (grid' 80) ["0.0.0", "0.0.1", "0.0.2", "0.0.3", "0.0.4"] | |
, bench "pvp grid" $ nf (grid 80) ["0.0.0.0", "0.0.0.1", "0.0.0.2", "0.0.0.3"] | |
, bench "pvp grid'" $ nf (grid' 80) ["0.0.0.0", "0.0.0.1", "0.0.0.2", "0.0.0.3"] | |
] | |
] | |
tabWidth :: Int | |
tabWidth = 8 | |
grid :: Int -> [String] -> [[Column]] | |
grid _ [] = [] | |
grid width xs = | |
if maxLength >= width | |
then map (\x -> [(x, "")]) items | |
else map (unfoldr column) [0 .. numrows - 1] | |
where | |
maxLength :: Int | |
maxLength = | |
foldl' (\z -> max z . length) 0 items | |
column :: Int -> Maybe (Column, Int) | |
column i = | |
if i >= numItems | |
then Nothing | |
else Just ((item, padding), i + numrows) | |
where | |
item :: String | |
item = items !! i | |
padding :: Padding | |
padding = replicate padCount '\t' | |
padCount :: Int | |
padCount = | |
if i + numrows >= numItems | |
then 0 | |
else qPad + signum rPad | |
qPad, rPad :: Int | |
(qPad, rPad) = quotRem (columnWidth - length item) tabWidth | |
numrows :: Int | |
numrows = qRows + signum rRows | |
qRows, rRows :: Int | |
(qRows, rRows) = quotRem numItems numcols | |
numcols :: Int | |
numcols = max 1 (width `quot` columnWidth) | |
columnWidth :: Int | |
columnWidth = addTab maxLength | |
addTab :: Int -> Int | |
addTab pos = | |
pos + tabWidth - (pos `rem` tabWidth) | |
numItems :: Int | |
numItems = length items | |
items :: [String] | |
items = filter (not . null) xs | |
grid' :: Int -> [String] -> [[Column]] | |
grid' _ [] = [] | |
grid' width xs = | |
if maxLength >= width | |
then map singleColumn items | |
else map (unfoldr column) [0 .. numrows - 1] | |
where | |
maxLength :: Int | |
maxLength = | |
foldl' (\z -> max z . length) 0 items | |
items :: [String] | |
items = filter (not . null) xs | |
singleColumn :: String -> [Column] | |
singleColumn x = [(x, "")] | |
column :: Int -> Maybe (Column, Int) | |
column i = | |
if i >= numItems | |
then Nothing | |
else Just ((item, padding), i + numrows) | |
where | |
item :: String | |
item = itemMap ! i | |
padding :: Padding | |
padding = replicate padCount '\t' | |
padCount :: Int | |
padCount = | |
if i + numrows >= numItems | |
then 0 | |
else qPad + signum rPad | |
qPad, rPad :: Int | |
(qPad, rPad) = quotRem (columnWidth - length item) tabWidth | |
numrows :: Int | |
numrows = qRows + signum rRows | |
qRows, rRows :: Int | |
(qRows, rRows) = quotRem numItems numcols | |
numcols :: Int | |
numcols = max 1 (width `quot` columnWidth) | |
columnWidth :: Int | |
columnWidth = addTab maxLength | |
addTab :: Int -> Int | |
addTab pos = | |
pos + tabWidth - (pos `rem` tabWidth) | |
numItems :: Int | |
numItems = length items | |
itemMap :: IntMap String | |
itemMap = | |
IntMap.fromAscList (zip [0..] items) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
benchmarking 500/semver grid | |
time 304.0 μs (303.5 μs .. 304.3 μs) | |
1.000 R² (1.000 R² .. 1.000 R²) | |
mean 304.9 μs (304.8 μs .. 305.2 μs) | |
std dev 569.6 ns (248.3 ns .. 880.8 ns) | |
benchmarking 500/semver grid' | |
time 79.35 μs (79.25 μs .. 79.48 μs) | |
1.000 R² (1.000 R² .. 1.000 R²) | |
mean 79.33 μs (79.28 μs .. 79.41 μs) | |
std dev 204.2 ns (119.4 ns .. 368.4 ns) | |
benchmarking 500/pvp grid | |
time 312.7 μs (312.5 μs .. 313.0 μs) | |
1.000 R² (1.000 R² .. 1.000 R²) | |
mean 313.4 μs (312.9 μs .. 315.0 μs) | |
std dev 2.485 μs (603.7 ns .. 5.126 μs) | |
benchmarking 500/pvp grid' | |
time 84.01 μs (83.76 μs .. 84.49 μs) | |
1.000 R² (0.999 R² .. 1.000 R²) | |
mean 83.89 μs (83.76 μs .. 84.49 μs) | |
std dev 805.8 ns (121.9 ns .. 1.816 μs) | |
benchmarking 100/semver grid | |
time 17.58 μs (17.55 μs .. 17.62 μs) | |
1.000 R² (1.000 R² .. 1.000 R²) | |
mean 17.59 μs (17.56 μs .. 17.70 μs) | |
std dev 174.0 ns (15.86 ns .. 364.6 ns) | |
benchmarking 100/semver grid' | |
time 11.92 μs (11.90 μs .. 11.94 μs) | |
1.000 R² (1.000 R² .. 1.000 R²) | |
mean 11.95 μs (11.93 μs .. 11.98 μs) | |
std dev 74.70 ns (50.45 ns .. 119.5 ns) | |
benchmarking 100/pvp grid | |
time 18.46 μs (18.44 μs .. 18.47 μs) | |
1.000 R² (1.000 R² .. 1.000 R²) | |
mean 18.44 μs (18.42 μs .. 18.46 μs) | |
std dev 62.17 ns (50.39 ns .. 80.49 ns) | |
benchmarking 100/pvp grid' | |
time 14.89 μs (14.85 μs .. 14.92 μs) | |
1.000 R² (1.000 R² .. 1.000 R²) | |
mean 14.86 μs (14.84 μs .. 14.88 μs) | |
std dev 63.86 ns (46.88 ns .. 85.13 ns) | |
benchmarking 50/semver grid | |
time 17.71 μs (17.67 μs .. 17.76 μs) | |
1.000 R² (1.000 R² .. 1.000 R²) | |
mean 17.72 μs (17.70 μs .. 17.75 μs) | |
std dev 80.07 ns (61.84 ns .. 119.2 ns) | |
benchmarking 50/semver grid' | |
time 11.96 μs (11.94 μs .. 11.97 μs) | |
1.000 R² (1.000 R² .. 1.000 R²) | |
mean 11.96 μs (11.95 μs .. 11.97 μs) | |
std dev 35.26 ns (29.20 ns .. 43.91 ns) | |
benchmarking 50/pvp grid | |
time 18.43 μs (18.38 μs .. 18.47 μs) | |
1.000 R² (1.000 R² .. 1.000 R²) | |
mean 18.42 μs (18.41 μs .. 18.44 μs) | |
std dev 57.36 ns (45.47 ns .. 78.57 ns) | |
benchmarking 50/pvp grid' | |
time 14.80 μs (14.78 μs .. 14.81 μs) | |
1.000 R² (1.000 R² .. 1.000 R²) | |
mean 14.78 μs (14.78 μs .. 14.79 μs) | |
std dev 28.72 ns (23.90 ns .. 35.49 ns) | |
benchmarking 30/semver grid' | |
time 3.240 μs (3.237 μs .. 3.242 μs) | |
1.000 R² (1.000 R² .. 1.000 R²) | |
mean 3.238 μs (3.236 μs .. 3.240 μs) | |
std dev 6.996 ns (5.964 ns .. 8.406 ns) | |
benchmarking 30/semver grid | |
time 3.148 μs (3.025 μs .. 3.329 μs) | |
0.982 R² (0.965 R² .. 1.000 R²) | |
mean 3.089 μs (3.023 μs .. 3.236 μs) | |
std dev 312.9 ns (39.02 ns .. 514.4 ns) | |
variance introduced by outliers: 88% (severely inflated) | |
benchmarking 30/pvp grid' | |
time 4.206 μs (3.903 μs .. 4.499 μs) | |
0.969 R² (0.961 R² .. 0.981 R²) | |
mean 4.275 μs (4.054 μs .. 4.501 μs) | |
std dev 707.3 ns (645.8 ns .. 771.8 ns) | |
variance introduced by outliers: 95% (severely inflated) | |
benchmarking 30/pvp grid | |
time 3.634 μs (3.432 μs .. 3.916 μs) | |
0.975 R² (0.968 R² .. 0.988 R²) | |
mean 3.632 μs (3.497 μs .. 3.813 μs) | |
std dev 530.5 ns (426.9 ns .. 623.0 ns) | |
variance introduced by outliers: 94% (severely inflated) | |
benchmarking 15/semver grid | |
time 1.321 μs (1.268 μs .. 1.389 μs) | |
0.989 R² (0.983 R² .. 0.998 R²) | |
mean 1.320 μs (1.289 μs .. 1.382 μs) | |
std dev 145.4 ns (80.29 ns .. 225.6 ns) | |
variance introduced by outliers: 91% (severely inflated) | |
benchmarking 15/semver grid' | |
time 1.638 μs (1.575 μs .. 1.739 μs) | |
0.989 R² (0.979 R² .. 0.999 R²) | |
mean 1.599 μs (1.585 μs .. 1.653 μs) | |
std dev 81.19 ns (18.21 ns .. 166.5 ns) | |
variance introduced by outliers: 66% (severely inflated) | |
benchmarking 15/pvp grid | |
time 1.628 μs (1.537 μs .. 1.731 μs) | |
0.976 R² (0.969 R² .. 0.984 R²) | |
mean 1.680 μs (1.606 μs .. 1.755 μs) | |
std dev 236.9 ns (212.8 ns .. 263.3 ns) | |
variance introduced by outliers: 94% (severely inflated) | |
benchmarking 15/pvp grid' | |
time 1.933 μs (1.800 μs .. 2.093 μs) | |
0.955 R² (0.940 R² .. 0.972 R²) | |
mean 2.038 μs (1.908 μs .. 2.196 μs) | |
std dev 444.1 ns (374.7 ns .. 552.9 ns) | |
variance introduced by outliers: 97% (severely inflated) | |
benchmarking 5/semver grid | |
time 411.7 ns (394.3 ns .. 436.8 ns) | |
0.981 R² (0.974 R² .. 0.991 R²) | |
mean 427.4 ns (409.3 ns .. 451.1 ns) | |
std dev 69.21 ns (54.74 ns .. 82.21 ns) | |
variance introduced by outliers: 96% (severely inflated) | |
benchmarking 5/semver grid' | |
time 549.1 ns (548.4 ns .. 550.1 ns) | |
1.000 R² (1.000 R² .. 1.000 R²) | |
mean 549.5 ns (549.0 ns .. 550.6 ns) | |
std dev 2.374 ns (1.446 ns .. 3.977 ns) | |
benchmarking 5/pvp grid | |
time 337.2 ns (336.9 ns .. 337.5 ns) | |
1.000 R² (1.000 R² .. 1.000 R²) | |
mean 337.1 ns (336.8 ns .. 337.5 ns) | |
std dev 1.248 ns (884.8 ps .. 2.089 ns) | |
benchmarking 5/pvp grid' | |
time 465.0 ns (463.8 ns .. 467.6 ns) | |
1.000 R² (1.000 R² .. 1.000 R²) | |
mean 464.6 ns (463.9 ns .. 467.0 ns) | |
std dev 4.053 ns (1.003 ns .. 8.369 ns) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment