This repository has been archived by the owner on May 21, 2024. It is now read-only.
update: removed all the pointers and indirection #6
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I admittedly don't understand the purpose of all the pointers and indirection in the code, but i did a little light profiling and then rolled it in our own system and found that the extra pointers were causing more stress on the allocator and GC. I refactored the ragel system and some of the code to remove them and got between 10 and 60% speedups. If there is some other reason for keeping that indirection I would like to better understand it. I am also admittedly new to ragel and code generation, so if I botched some of the code changes let me know.
Thank you for the library, it was already fast, this is a little faster and more go-like.