[ 
https://issues.apache.org/jira/browse/ARROW-6417?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16923607#comment-16923607
 ] 

Wes McKinney commented on ARROW-6417:
-------------------------------------

The benchmark results in arrow-builder-benchmark are pretty damning...

master

{code}
---------------------------------------------------------------------------
Benchmark                                    Time           CPU Iterations
---------------------------------------------------------------------------
BufferBuilderTinyWrites/real_time    264925407 ns  264925189 ns          2    
966.31MB/s
BufferBuilderSmallWrites/real_time   178721490 ns  178720664 ns          4   
1.39882GB/s
BufferBuilderLargeWrites/real_time   192722520 ns  192720335 ns          4   
1.29027GB/s
BuildBooleanArrayNoNulls              61622618 ns   61620052 ns         11   
4.05712GB/s
BuildIntArrayNoNulls                 159926782 ns  159919611 ns          4   
1.56329GB/s
BuildAdaptiveIntNoNulls               34141484 ns   34141072 ns         20   
7.32256GB/s
BuildAdaptiveIntNoNullsScalarAppend  118671966 ns  118669726 ns          6   
2.10669GB/s
BuildBinaryArray                     646172067 ns  646165509 ns          1   
396.183MB/s
BuildChunkedBinaryArray              629538527 ns  629517882 ns          1    
406.66MB/s
BuildFixedSizeBinaryArray            319843478 ns  319421997 ns          2   
801.448MB/s
BuildDecimalArray                    613258571 ns  613249404 ns          1   
834.897MB/s
BuildInt64DictionaryArrayRandom      265489567 ns  265479003 ns          3   
964.295MB/s
BuildInt64DictionaryArraySequential  256461735 ns  256454103 ns          3   
998.229MB/s
BuildInt64DictionaryArraySimilar     436497455 ns  436496161 ns          2   
586.489MB/s
BuildStringDictionaryArray           737468427 ns  737429710 ns          1   
463.142MB/s
ArrayDataConstructDestruct               38895 ns      38895 ns      18067
{code}

master with the older jemalloc

{code}
---------------------------------------------------------------------------
Benchmark                                    Time           CPU Iterations
---------------------------------------------------------------------------
BufferBuilderTinyWrites/real_time    139816022 ns  139814056 ns          5   
1.78806GB/s
BufferBuilderSmallWrites/real_time    35215592 ns   35214766 ns         19   
7.09912GB/s
BufferBuilderLargeWrites/real_time    32460612 ns   32456001 ns         21   
7.66046GB/s
BuildBooleanArrayNoNulls              33690068 ns   33688611 ns         21   
7.42091GB/s
BuildIntArrayNoNulls                  49988970 ns   49987507 ns         14   
5.00125GB/s
BuildAdaptiveIntNoNulls               23878665 ns   23876703 ns         29   
10.4705GB/s
BuildAdaptiveIntNoNullsScalarAppend  116140426 ns  116137665 ns          6   
2.15262GB/s
BuildBinaryArray                     593711307 ns  593699295 ns          1   
431.195MB/s
BuildChunkedBinaryArray              538185849 ns  538185876 ns          1   
475.672MB/s
BuildFixedSizeBinaryArray            218638403 ns  218631191 ns          3   
1.14348GB/s
BuildDecimalArray                    294477232 ns  294474155 ns          2   
1.69794GB/s
BuildInt64DictionaryArrayRandom      248790745 ns  248788395 ns          3   
1028.99MB/s
BuildInt64DictionaryArraySequential  238954386 ns  238949356 ns          3   
1071.36MB/s
BuildInt64DictionaryArraySimilar     422484600 ns  422471016 ns          2   
605.959MB/s
BuildStringDictionaryArray           716507144 ns  716487471 ns          1    
476.68MB/s
ArrayDataConstructDestruct               38406 ns      38406 ns      18229
{code}

So it seems that performance in realloc-heavy workloads is degraded

> [C++][Parquet] Non-dictionary BinaryArray reads from Parquet format have 
> slowed down since 0.11.x
> -------------------------------------------------------------------------------------------------
>
>                 Key: ARROW-6417
>                 URL: https://issues.apache.org/jira/browse/ARROW-6417
>             Project: Apache Arrow
>          Issue Type: Improvement
>          Components: C++, Python
>            Reporter: Wes McKinney
>            Priority: Major
>              Labels: pull-request-available
>         Attachments: 20190903_parquet_benchmark.py, 
> 20190903_parquet_read_perf.png
>
>          Time Spent: 1h
>  Remaining Estimate: 0h
>
> In doing some benchmarking, I have found that binary reads seem to be slower 
> from Arrow 0.11.1 to master branch. It would be a good idea to do some basic 
> profiling to see where we might improve our memory allocation strategy (or 
> whatever the bottleneck turns out to be)



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

Reply via email to