-
Notifications
You must be signed in to change notification settings - Fork 20
Closed
Description
I made a benchmark program for purescript-parsing which benchmarks against this purescript-string-parsers package.
https://github.com/purescript-contrib/purescript-parsing/blob/main/bench/Main.purs
Here are the results of benchmarking many anyDigit
Text.Parsing.StringParser.CodePoints
StringParser.runParser parse23Points
mean = 746.70 ms
stddev = 12.21 ms
min = 738.42 ms
max = 794.27 ms
Text.Parsing.StringParser.CodeUnits
StringParser.runParser parse23Units
mean = 10.10 ms
stddev = 1.13 ms
min = 9.46 ms
max = 24.07 ms
Text.Parsing.Parser.String
runParser parse23
mean = 44.20 ms
stddev = 6.38 ms
min = 42.25 ms
max = 113.16 ms
Data.String.Regex
Regex.match pattern23
mean = 728.23 μs
stddev = 339.32 μs
min = 613.72 μs
max = 2.97 ms
There is something terribly wrong with Text.Parsing.StringParser.CodePoints.anyDigit and I think I know what. The problem is that codePointAt is linear, so many anyDigit then becomes quadratic.
(EDIT deleted notes about stuff not related to this issue)
garybchtenb
Metadata
Metadata
Assignees
Labels
No labels