You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@arrow.apache.org by "Liya Fan (JIRA)" <ji...@apache.org> on 2019/06/18 12:32:00 UTC

[jira] [Created] (ARROW-5639) Remove floating point computation from BaseVariableWidthVector#getOffsetBufferValueCapacity

Liya Fan created ARROW-5639:
-------------------------------

             Summary: Remove floating point computation from BaseVariableWidthVector#getOffsetBufferValueCapacity
                 Key: ARROW-5639
                 URL: https://issues.apache.org/jira/browse/ARROW-5639
             Project: Apache Arrow
          Issue Type: Improvement
          Components: Java
            Reporter: Liya Fan
            Assignee: Liya Fan
         Attachments: image-2019-06-18-20-30-17-826.png

Method BaseVariableWidthVector#getOffsetBufferValueCapacity uses floating point computation to calculate the capacity, which is not necessary.

(int) ((offsetBuffer.capacity() * 1.0) / OFFSET_WIDTH);

It is interesting to note that JIT cannot optimize away the floating point computations:

 !image-2019-06-18-20-30-17-826.png! 

So this has performance penalty:
Before:
VariableWidthVectorBenchmarks.getValueCapacity  avgt    5  6.570 ± 0.004  ns/op

After:
VariableWidthVectorBenchmarks.getValueCapacity  avgt    5  5.787 ± 0.575  ns/op




--
This message was sent by Atlassian JIRA
(v7.6.3#76005)