From 2a07dbe230e1816d2a2b1091adcbbeaa424eeccf Mon Sep 17 00:00:00 2001 From: luoluoyuyu Date: Tue, 26 Aug 2025 15:16:01 +0800 Subject: [PATCH 1/2] Optimize aligned object memory size calculation --- .../java/org/apache/tsfile/utils/RamUsageEstimator.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/java/common/src/main/java/org/apache/tsfile/utils/RamUsageEstimator.java b/java/common/src/main/java/org/apache/tsfile/utils/RamUsageEstimator.java index 404af5109..69f5488fb 100644 --- a/java/common/src/main/java/org/apache/tsfile/utils/RamUsageEstimator.java +++ b/java/common/src/main/java/org/apache/tsfile/utils/RamUsageEstimator.java @@ -81,6 +81,8 @@ private RamUsageEstimator() {} * full multiple of this constant, possibly wasting some space. */ public static final int NUM_BYTES_OBJECT_ALIGNMENT; + private static final int ALIGN_MASK; + /** * Approximate memory usage that we assign to all unknown queries - this maps roughly to a @@ -180,6 +182,8 @@ private RamUsageEstimator() {} NUM_BYTES_ARRAY_HEADER = NUM_BYTES_OBJECT_HEADER + Integer.BYTES; } + ALIGN_MASK = NUM_BYTES_OBJECT_ALIGNMENT - 1; + // get min/max value of cached Long class instances: long longCacheMinValue = 0; while (longCacheMinValue > Long.MIN_VALUE @@ -209,8 +213,7 @@ private RamUsageEstimator() {} /** Aligns an object size to be the next multiple of {@link #NUM_BYTES_OBJECT_ALIGNMENT}. */ public static long alignObjectSize(long size) { - size += NUM_BYTES_OBJECT_ALIGNMENT - 1L; - return size - (size % NUM_BYTES_OBJECT_ALIGNMENT); + return (size + ALIGN_MASK) & ~ALIGN_MASK; } /** From 4a03da0b01e73c7c42edf3e97ba11811b56e61e2 Mon Sep 17 00:00:00 2001 From: luoluoyuyu Date: Tue, 26 Aug 2025 16:03:44 +0800 Subject: [PATCH 2/2] spotless --- .../main/java/org/apache/tsfile/utils/RamUsageEstimator.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/common/src/main/java/org/apache/tsfile/utils/RamUsageEstimator.java b/java/common/src/main/java/org/apache/tsfile/utils/RamUsageEstimator.java index 69f5488fb..af7a8cff4 100644 --- a/java/common/src/main/java/org/apache/tsfile/utils/RamUsageEstimator.java +++ b/java/common/src/main/java/org/apache/tsfile/utils/RamUsageEstimator.java @@ -81,8 +81,8 @@ private RamUsageEstimator() {} * full multiple of this constant, possibly wasting some space. */ public static final int NUM_BYTES_OBJECT_ALIGNMENT; - private static final int ALIGN_MASK; + private static final int ALIGN_MASK; /** * Approximate memory usage that we assign to all unknown queries - this maps roughly to a