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)