[FlexBuffers][Java] Cache size of Sized objects in FlexBuffers (#5551)

In my benchmarks it shows deserialization performance improvements of
around 7%
This commit is contained in:
Paulo Pinheiro 2019-10-04 00:56:29 +02:00 committed by Wouter van Oortmerssen
parent d4cae0a623
commit 842f672baf
1 changed files with 5 additions and 1 deletions

View File

@ -635,12 +635,16 @@ public class FlexBuffers {
// Stores size in `byte_width_` bytes before end position.
private static abstract class Sized extends Object {
private final int size;
Sized(ByteBuffer buff, int end, int byteWidth) {
super(buff, end, byteWidth);
size = readInt(bb, end - byteWidth, byteWidth);
}
public int size() {
return readInt(bb, end - byteWidth, byteWidth);
return size;
}
}