Commits


Antoine Pitrou authored and Benjamin Kietzman committed 23215422c71
ARROW-10318: [C++] Use pimpl idiom in CSV parser Hide more implementation details from `parser.h`. Also add some more realistic parsing micro-benchmarks. Interestingly, this increases performance on the CSV parser micro-benchmarks (at least here with clang 10.0 on Ubuntu 20.04). * before: ``` ------------------------------------------------------------------------------- Benchmark Time CPU Iterations UserCounters... ------------------------------------------------------------------------------- ParseCSVQuotedBlock 264665 ns 264597 ns 7904 bytes_per_second=612.723M/s ParseCSVEscapedBlock 258008 ns 257938 ns 7762 bytes_per_second=591.568M/s ParseCSVFlightsExample 2241195 ns 2240631 ns 932 bytes_per_second=433.608M/s ParseCSVVehiclesExample 19660852 ns 19656220 ns 110 bytes_per_second=583.425M/s ParseCSVStocksExample 4323310 ns 4322451 ns 486 bytes_per_second=485.489M/s ``` * after: ``` ParseCSVQuotedBlock 196201 ns 196167 ns 10717 bytes_per_second=826.462M/s ParseCSVEscapedBlock 182517 ns 182479 ns 11919 bytes_per_second=836.194M/s ParseCSVFlightsExample 1548348 ns 1548079 ns 1366 bytes_per_second=627.588M/s ParseCSVVehiclesExample 17251422 ns 17244772 ns 121 bytes_per_second=665.009M/s ParseCSVStocksExample 2253296 ns 2252727 ns 943 bytes_per_second=931.539M/s ``` Closes #8493 from pitrou/ARROW-10318-csv-parser-pimpl Authored-by: Antoine Pitrou <antoine@python.org> Signed-off-by: Benjamin Kietzman <bengilgit@gmail.com>