This is an automated email from the ASF dual-hosted git repository.
qiaojialin pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/tsfile.git
The following commit(s) were added to refs/heads/develop by this push:
new 082498b9 Avoid directly import sun.misc packages (#3)
082498b9 is described below
commit 082498b9d29243f29743043e862d3cc791dace1f
Author: Jackie Tien <[email protected]>
AuthorDate: Fri Jan 5 10:29:32 2024 +0800
Avoid directly import sun.misc packages (#3)
---
.../iotdb/tsfile/utils/RamUsageEstimator.java | 40 +++++-----------------
1 file changed, 9 insertions(+), 31 deletions(-)
diff --git
a/common-api/src/main/java/org/apache/iotdb/tsfile/utils/RamUsageEstimator.java
b/common-api/src/main/java/org/apache/iotdb/tsfile/utils/RamUsageEstimator.java
index 3aff9494..80f1f022 100644
---
a/common-api/src/main/java/org/apache/iotdb/tsfile/utils/RamUsageEstimator.java
+++
b/common-api/src/main/java/org/apache/iotdb/tsfile/utils/RamUsageEstimator.java
@@ -531,61 +531,39 @@ public final class RamUsageEstimator {
}
}
- // These constant values are derived from sun.misc.Unsafe, as referencing
this class was causing
- // compilation issues.
- // TODO: Verify that these values don't actually change from one version of
the SDK to the other.
- public static final int ARRAY_OBJECT_BASE_OFFSET = 16;
- public static final int ARRAY_OBJECT_INDEX_SCALE = 4;
- public static final int ARRAY_BOOLEAN_BASE_OFFSET = 16;
- public static final int ARRAY_BOOLEAN_INDEX_SCALE = 1;
- public static final int ARRAY_BYTE_BASE_OFFSET = 16;
- public static final int ARRAY_BYTE_INDEX_SCALE = 1;
- public static final int ARRAY_SHORT_BASE_OFFSET = 16;
- public static final int ARRAY_SHORT_INDEX_SCALE = 2;
- public static final int ARRAY_INT_BASE_OFFSET = 16;
- public static final int ARRAY_INT_INDEX_SCALE = 4;
- public static final int ARRAY_LONG_BASE_OFFSET = 16;
- public static final int ARRAY_LONG_INDEX_SCALE = 8;
- public static final int ARRAY_FLOAT_BASE_OFFSET = 16;
- public static final int ARRAY_FLOAT_INDEX_SCALE = 4;
- public static final int ARRAY_DOUBLE_BASE_OFFSET = 16;
- public static final int ARRAY_DOUBLE_INDEX_SCALE = 8;
- public static final int ARRAY_CHAR_BASE_OFFSET = 16;
- public static final int ARRAY_CHAR_INDEX_SCALE = 2;
-
public static long sizeOfBooleanArray(int length) {
- return ARRAY_BOOLEAN_BASE_OFFSET + (((long) ARRAY_BOOLEAN_INDEX_SCALE) *
length);
+ return alignObjectSize((long) NUM_BYTES_ARRAY_HEADER + length);
}
public static long sizeOfByteArray(int length) {
- return ARRAY_BYTE_BASE_OFFSET + (((long) ARRAY_BYTE_INDEX_SCALE) * length);
+ return alignObjectSize((long) NUM_BYTES_ARRAY_HEADER + length);
}
public static long sizeOfShortArray(int length) {
- return ARRAY_SHORT_BASE_OFFSET + (((long) ARRAY_SHORT_INDEX_SCALE) *
length);
+ return alignObjectSize(NUM_BYTES_ARRAY_HEADER + (long) Short.BYTES *
length);
}
public static long sizeOfCharArray(int length) {
- return ARRAY_CHAR_BASE_OFFSET + (((long) ARRAY_CHAR_INDEX_SCALE) * length);
+ return alignObjectSize(NUM_BYTES_ARRAY_HEADER + (long) Character.BYTES *
length);
}
public static long sizeOfIntArray(int length) {
- return ARRAY_INT_BASE_OFFSET + (((long) ARRAY_INT_INDEX_SCALE) * length);
+ return alignObjectSize(NUM_BYTES_ARRAY_HEADER + (long) Integer.BYTES *
length);
}
public static long sizeOfLongArray(int length) {
- return ARRAY_LONG_BASE_OFFSET + (((long) ARRAY_LONG_INDEX_SCALE) * length);
+ return alignObjectSize(NUM_BYTES_ARRAY_HEADER + (long) Long.BYTES *
length);
}
public static long sizeOfFloatArray(int length) {
- return ARRAY_FLOAT_BASE_OFFSET + (((long) ARRAY_FLOAT_INDEX_SCALE) *
length);
+ return alignObjectSize(NUM_BYTES_ARRAY_HEADER + (long) Float.BYTES *
length);
}
public static long sizeOfDoubleArray(int length) {
- return ARRAY_DOUBLE_BASE_OFFSET + (((long) ARRAY_DOUBLE_INDEX_SCALE) *
length);
+ return alignObjectSize(NUM_BYTES_ARRAY_HEADER + (long) Double.BYTES *
length);
}
public static long sizeOfObjectArray(int length) {
- return ARRAY_OBJECT_BASE_OFFSET + (((long) ARRAY_OBJECT_INDEX_SCALE) *
length);
+ return alignObjectSize(NUM_BYTES_ARRAY_HEADER + (long)
NUM_BYTES_OBJECT_REF * length);
}
}