perf: Refactor CSV serialization to not go thorough AnyValue
#15576
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.
While convenient, this harms performance. Avoiding it gives a boost of 40% on my machine, and even more if I limit to single thread.
I did several other things to improve performance, like pre-compilation of date/time formatting and speeding up strings with quotes that need to be escaped. Those aren't strictly related, but they are nice.
Benchmark (the
POOL.install()
is because otherwise the switch to Polars' pool has a measurable overhead, but this should be only present in benchmarking and not in real-world cases):