Jin Shang created ARROW-17824:
---------------------------------

             Summary: [C++][Gandiva] Implement preallocation for  variable 
length output buffer
                 Key: ARROW-17824
                 URL: https://issues.apache.org/jira/browse/ARROW-17824
             Project: Apache Arrow
          Issue Type: Improvement
          Components: C++ - Gandiva
    Affects Versions: 9.0.0
            Reporter: Jin Shang


When the output type of an expression is of variable length, e.g. string, 
Gandiva would realloc the output buffer to make space for new outputs for each 
row. When num of rows is high some memory allocators perform poorly.

We can use the std::vector like approach to amortize the allcation cost. First 
allocate some initial space depending on the input size. Each time we run out 
of space, double the buffer size. In the end shrink it to fit the actual size. 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to