You are viewing a plain text version of this content. The canonical link for it is here.
Posted to github@arrow.apache.org by GitBox <gi...@apache.org> on 2020/08/05 14:16:50 UTC

[GitHub] [arrow] pitrou commented on pull request #7901: ARROW-9543: [C++] Simplify parsing/formatting utilities

pitrou commented on pull request #7901:
URL: https://github.com/apache/arrow/pull/7901#issuecomment-669219582


   It seems that micro-benchmark performance is regressing with this PR, at least here (clang 9.0, AMD Ryzen):
   * before:
   ```
   IntegerParsing<Int8Type>                        2396 ns         2396 ns       292824 items_per_second=417.353M/s
   IntegerParsing<Int16Type>                       4499 ns         4499 ns       155249 items_per_second=222.277M/s
   IntegerParsing<Int32Type>                       8664 ns         8663 ns        80584 items_per_second=115.43M/s
   IntegerParsing<Int64Type>                      12173 ns        12172 ns        57294 items_per_second=82.158M/s
   IntegerParsing<UInt8Type>                       3369 ns         3369 ns       207573 items_per_second=296.845M/s
   IntegerParsing<UInt16Type>                      2102 ns         2102 ns       332411 items_per_second=475.832M/s
   IntegerParsing<UInt32Type>                      4962 ns         4961 ns       140831 items_per_second=201.572M/s
   IntegerParsing<UInt64Type>                      7191 ns         7190 ns       100415 items_per_second=139.078M/s
   
   IntegerFormatting<Int8Type>                     3812 ns         3812 ns       179090 items_per_second=262.339M/s
   IntegerFormatting<Int16Type>                    5027 ns         5027 ns       134540 items_per_second=198.932M/s
   IntegerFormatting<Int32Type>                    7389 ns         7388 ns        93547 items_per_second=135.355M/s
   IntegerFormatting<Int64Type>                   15756 ns        15754 ns        44352 items_per_second=63.4756M/s
   IntegerFormatting<UInt8Type>                    4056 ns         4056 ns       173893 items_per_second=246.56M/s
   IntegerFormatting<UInt16Type>                   5275 ns         5275 ns       132502 items_per_second=189.586M/s
   IntegerFormatting<UInt32Type>                   7541 ns         7540 ns        92745 items_per_second=132.63M/s
   IntegerFormatting<UInt64Type>                  17504 ns        17502 ns        40788 items_per_second=57.1355M/s
   ```
   * after:
   ```
   IntegerParsing<Int8Type>                        4084 ns         4083 ns       169535 items_per_second=244.921M/s
   IntegerParsing<Int16Type>                       4707 ns         4707 ns       148239 items_per_second=212.468M/s
   IntegerParsing<Int32Type>                       8991 ns         8990 ns        77470 items_per_second=111.238M/s
   IntegerParsing<Int64Type>                      12632 ns        12630 ns        55277 items_per_second=79.1756M/s
   IntegerParsing<UInt8Type>                       3475 ns         3475 ns       201119 items_per_second=287.803M/s
   IntegerParsing<UInt16Type>                      3784 ns         3784 ns       184693 items_per_second=264.29M/s
   IntegerParsing<UInt32Type>                      5609 ns         5608 ns       124533 items_per_second=178.323M/s
   IntegerParsing<UInt64Type>                      7552 ns         7550 ns        92385 items_per_second=132.442M/s
   
   IntegerFormatting<Int8Type>                     5973 ns         5972 ns       115765 items_per_second=167.445M/s
   IntegerFormatting<Int16Type>                    7325 ns         7324 ns        95107 items_per_second=136.541M/s
   IntegerFormatting<Int32Type>                   15128 ns        15126 ns        46259 items_per_second=66.1119M/s
   IntegerFormatting<Int64Type>                   18152 ns        18149 ns        43116 items_per_second=55.0988M/s
   IntegerFormatting<UInt8Type>                    6079 ns         6078 ns       114820 items_per_second=164.531M/s
   IntegerFormatting<UInt16Type>                   8158 ns         8157 ns        85571 items_per_second=122.597M/s
   IntegerFormatting<UInt32Type>                  10500 ns        10498 ns        66770 items_per_second=95.2558M/s
   IntegerFormatting<UInt64Type>                  20176 ns        20173 ns        34577 items_per_second=49.5716M/s
   ```
   
   However, CSV conversion benchmarks seem either affected or (slightly) improved:
   * before:
   ```
   Int64Conversion                  84572 ns        84558 ns         8320 items_per_second=98.5477M/s
   FloatConversion                 186815 ns       186786 ns         3770 items_per_second=42.8298M/s
   Decimal128Conversion            403464 ns       403407 ns         1715 items_per_second=16.5267M/s
   StringConversion                 58231 ns        58222 ns        12144 items_per_second=114.509M/s
   TimestampConversionDefault      156438 ns       156414 ns         4461 items_per_second=63.9328M/s
   TimestampConversionStrptime     472131 ns       472065 ns         1480 items_per_second=21.1835M/s
   ```
   * after:
   ```
   Int64Conversion                  70332 ns        70322 ns         9953 items_per_second=118.497M/s
   FloatConversion                 179511 ns       179482 ns         3823 items_per_second=44.5726M/s
   Decimal128Conversion            417192 ns       417133 ns         1678 items_per_second=15.9829M/s
   StringConversion                 58438 ns        58426 ns        12043 items_per_second=114.109M/s
   TimestampConversionDefault      154926 ns       154902 ns         4495 items_per_second=64.5568M/s
   TimestampConversionStrptime     514370 ns       514289 ns         1345 items_per_second=19.4443M/s
   ```
   
   So there doesn't seem to be any reason for concern, a priori.
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org