Commits


Antoine Pitrou authored and Wes McKinney committed 516750216bf
ARROW-3321: [C++] Improve integer parsing performance Before: ``` --------------------------------------------------------------------- Benchmark Time CPU Iterations --------------------------------------------------------------------- BM_IntegerParsing<Int8Type> 1388 ns 1387 ns 502861 5.49911M items/s BM_IntegerParsing<Int16Type> 1475 ns 1475 ns 468724 5.17179M items/s BM_IntegerParsing<Int32Type> 1730 ns 1729 ns 405693 4.41194M items/s BM_IntegerParsing<Int64Type> 2131 ns 2131 ns 328192 3.58034M items/s BM_IntegerParsing<UInt8Type> 1238 ns 1238 ns 572573 6.16483M items/s BM_IntegerParsing<UInt16Type> 1302 ns 1301 ns 537960 5.86206M items/s BM_IntegerParsing<UInt32Type> 1391 ns 1391 ns 502859 5.4857M items/s BM_IntegerParsing<UInt64Type> 1637 ns 1637 ns 427832 4.661M items/s BM_FloatParsing<FloatType> 4437 ns 4436 ns 156887 1.71973M items/s BM_FloatParsing<DoubleType> 4593 ns 4592 ns 152459 1.66129M items/s ``` After: ``` --------------------------------------------------------------------- Benchmark Time CPU Iterations --------------------------------------------------------------------- BM_IntegerParsing<Int8Type> 23 ns 23 ns 29800687 324.788M items/s BM_IntegerParsing<Int16Type> 27 ns 27 ns 26593165 287.438M items/s BM_IntegerParsing<Int32Type> 34 ns 34 ns 20689813 226.211M items/s BM_IntegerParsing<Int64Type> 49 ns 49 ns 14256379 155.424M items/s BM_IntegerParsing<UInt8Type> 17 ns 17 ns 42295211 454.911M items/s BM_IntegerParsing<UInt16Type> 16 ns 16 ns 42663172 464.397M items/s BM_IntegerParsing<UInt32Type> 21 ns 21 ns 33372432 363.209M items/s BM_IntegerParsing<UInt64Type> 33 ns 33 ns 21502295 234.255M items/s BM_FloatParsing<FloatType> 4554 ns 4553 ns 153207 1.67565M items/s BM_FloatParsing<DoubleType> 4579 ns 4578 ns 152304 1.66651M items/s ``` Author: Antoine Pitrou <antoine@python.org> Closes #2619 from pitrou/ARROW-3321-faster-int-conversion and squashes the following commits: 9834b28e6 <Antoine Pitrou> ARROW-3321: Improve integer parsing performance