Increase amount of work done without allocation
Created by: jFransham
Problem: [describe the problem you try to solve with this PR.]
We allocate a lot
Solution: [describe carefully what you change by this PR.]
Use SmallVec
and SmallString
(based on SmallVec
) to allow small vectors and strings to be stored on the stack.
Changes introduced by this pull request:
Some public API functions that took String
s take SmallString
s now. Also, it's now even faster on my machine.
- [...]
- [...]
- [...]
Drawbacks: [if any, describe the drawbacks of this pull request.]
TODOs: [what is not done yet.]
Clean up the code, unify the methods of creating a singleton smallvec (probably with a macro), move the typedefs to a types
module.
Fixes: [what issues this fixes.]
State: [the state of this PR, e.g. WIP, ready, etc.]
WIP
Blocking/related: [issues or PRs blocking or being related to this issue.]
Other: [optional: for other relevant information that should be known or cannot be described in the other fields.]
The above template is not necessary for smaller PRs.