Skip to content

Fix the sepBy benchmarks again #180

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Apr 5, 2022
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 13 additions & 19 deletions bench/Main.purs
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ import Effect.Exception (throw)
import Effect.Unsafe (unsafePerformEffect)
import Parsing (Parser, runParser)
import Parsing.Combinators (chainl, chainlRec, chainr, chainrRec, manyTill, manyTillRec, manyTillRec_, manyTill_, sepBy, sepByRec)
import Parsing.String (anyChar, char, string)
import Parsing.String (anyChar, char, eof, string)
import Parsing.String.Basic (digit)
import Performance.Minibench (benchWith)
import StringParser as StringParser
Expand All @@ -84,15 +84,9 @@ string23 = "23"
string23_10000 :: String
string23_10000 = fold $ replicate 5000 string23

string23_10000x :: String
string23_10000x = string23_10000 <> "x"

string23_1000 :: String
string23_1000 = fold $ replicate 500 string23

string23_1000x :: String
string23_1000x = string23_1000 <> "x"

stringSkidoo :: String
stringSkidoo = "skidoooooo"

Expand Down Expand Up @@ -192,15 +186,15 @@ main = do

log "<th><h2>sepBy 1000</h2></th>"
htmlTableWrap "runParser sepBy 1000" $ benchWith 200
$ \_ -> throwLeft $ runParser string23_1000 $ sepBy anyChar (char '2')
$ \_ -> throwLeft $ runParser string23_1000 $ sepBy anyChar (pure unit)
htmlTableWrap "runParser sepByRec 1000" $ benchWith 200
$ \_ -> throwLeft $ runParser string23_1000 $ sepByRec anyChar (char '2')
$ \_ -> throwLeft $ runParser string23_1000 $ sepByRec anyChar (pure unit)

log "<th><h2>sepBy 10000</h2></th>"
htmlTableWrap "runParser sepBy 10000" $ benchWith 50
$ \_ -> throwLeft $ runParser string23_10000 $ sepBy anyChar (char '2')
$ \_ -> throwLeft $ runParser string23_10000 $ sepBy anyChar (pure unit)
htmlTableWrap "runParser sepByRec 10000" $ benchWith 50
$ \_ -> throwLeft $ runParser string23_10000 $ sepByRec anyChar (char '2')
$ \_ -> throwLeft $ runParser string23_10000 $ sepByRec anyChar (pure unit)

log "<th><h2>chainl 10000</h2></th>"
htmlTableWrap "runParser chainl 10000" $ benchWith 50
Expand All @@ -222,23 +216,23 @@ main = do

log "<th><h2>manyTill 1000</h2></th>"
htmlTableWrap "runParser manyTill 1000" $ benchWith 200
$ \_ -> throwLeft $ runParser string23_1000x $ manyTill anyChar (char 'x')
$ \_ -> throwLeft $ runParser string23_1000 $ manyTill anyChar eof
htmlTableWrap "runParser manyTillRec 1000" $ benchWith 200
$ \_ -> throwLeft $ runParser string23_1000x $ manyTillRec anyChar (char 'x')
$ \_ -> throwLeft $ runParser string23_1000 $ manyTillRec anyChar eof
htmlTableWrap "runParser manyTill_ 1000" $ benchWith 200
$ \_ -> throwLeft $ runParser string23_1000x $ manyTill_ anyChar (char 'x')
$ \_ -> throwLeft $ runParser string23_1000 $ manyTill_ anyChar eof
htmlTableWrap "runParser manyTillRec_ 1000" $ benchWith 200
$ \_ -> throwLeft $ runParser string23_1000x $ manyTillRec_ anyChar (char 'x')
$ \_ -> throwLeft $ runParser string23_1000 $ manyTillRec_ anyChar eof

log "<th><h2>manyTill 10000</h2></th>"
htmlTableWrap "runParser manyTill 10000" $ benchWith 50
$ \_ -> throwLeft $ runParser string23_10000x $ manyTill anyChar (char 'x')
$ \_ -> throwLeft $ runParser string23_10000 $ manyTill anyChar eof
htmlTableWrap "runParser manyTillRec 10000" $ benchWith 50
$ \_ -> throwLeft $ runParser string23_10000x $ manyTillRec anyChar (char 'x')
$ \_ -> throwLeft $ runParser string23_10000 $ manyTillRec anyChar eof
htmlTableWrap "runParser manyTill_ 10000" $ benchWith 50
$ \_ -> throwLeft $ runParser string23_10000x $ manyTill_ anyChar (char 'x')
$ \_ -> throwLeft $ runParser string23_10000 $ manyTill_ anyChar eof
htmlTableWrap "runParser manyTillRec_ 10000" $ benchWith 50
$ \_ -> throwLeft $ runParser string23_10000x $ manyTillRec_ anyChar (char 'x')
$ \_ -> throwLeft $ runParser string23_10000 $ manyTillRec_ anyChar eof

log "<th><h2>mediumJson</h2></th>"
htmlTableWrap "runParser json mediumJson" $ benchWith 200
Expand Down