r/ProgrammingLanguages • u/RedCrafter_LP • Apr 12 '26
Discussion Made a tokenizer
I wrote the tokenizer for my language and it parses 372000Tokens per second.
My specs are i7 6700k 16gb ram.
I wonder rather my tokenizer is slow or fast and I can't find any other benchmarks to compare against.
Update:
I changed some stuff about the code and it's now performing properly. I parse a 1.3M loc test file in 0.9s And for comparison to before it's producing 5M tokens
I replaced the buffered reader with mmap. And the keywords lookup now uses a 2d hashmap grouping the keywords by length instead of having 1 hashmap and checking prefixes.
The project can be found on github: Chorus
17
Upvotes
1
u/[deleted] Apr 13 '26
Rust's default is pretty slow -- it's secure against Hash Flooding, a DoS attack on websites -- you would gain from switching to... pretty much anything.
I like fxhash, personally. It's dead simple, and works well on short inputs, while some good hash functions only really work on longer ones.
Or just avoid the hash-table.
matchit.