-
Notifications
You must be signed in to change notification settings - Fork 16
Open
Description
I made an Earley engine that is much faster in benchmarks than YAEP: gearley. Here are the results for 88248 tokens (10K lines of C).
gearley: bench_parse_c ... bench: 53,125,029 ns/iter (+/- 3,652,318)
gearley with CompactBocage: bench_parse_c ... bench: 87,122,025 ns/iter (+/- 2,744,845)
YAEP: parse time 0.38
Memory use
gearley: all:12669488b forest:12664888b
gearley with CompactBocage: all:2.217MB forest:2.212MB
YAEP: memory=12.724MB
So, the Earley sets take up only 4600 bytes. That's one byte every 19 tokens. Gearley with a compact forest takes only 17.4% of the memory YAEP does. However, a compact forest slows down the benchmark by 34 milliseconds. With normal forest, the parse takes 14% time compared to a parse with YAEP, and the same amount of memory.
Compact forest takes 25 bytes per token. Gearley with the default forest takes 602 ns per token.
I invite you to make your own benchmarks.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels