This is an automated email from the ASF dual-hosted git repository. shuwenwei pushed a commit to branch fix_tvlist_partial_clone_dev_1.3 in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 719c4301f7f6111fc90563672614e9c405d0627a Author: shuwenwei <[email protected]> AuthorDate: Wed Aug 12 14:56:48 2026 +0800 perf: reuse pre-computed ArrayList instance size in AlignedTVList ram cost --- .../iotdb/db/queryengine/execution/MemoryEstimationHelper.java | 2 +- .../java/org/apache/iotdb/db/utils/datastructure/AlignedTVList.java | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/MemoryEstimationHelper.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/MemoryEstimationHelper.java index ba6660f3d6a..1737b48cf18 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/MemoryEstimationHelper.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/MemoryEstimationHelper.java @@ -44,7 +44,7 @@ public class MemoryEstimationHelper { private static final long MEASUREMENT_PATH_INSTANCE_SIZE = RamUsageEstimator.shallowSizeOfInstance(AlignedPath.class); - private static final long ARRAY_LIST_INSTANCE_SIZE = + public static final long ARRAY_LIST_INSTANCE_SIZE = RamUsageEstimator.shallowSizeOfInstance(ArrayList.class); private static final long INTEGER_INSTANCE_SIZE = RamUsageEstimator.shallowSizeOfInstance(Integer.class); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/datastructure/AlignedTVList.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/datastructure/AlignedTVList.java index d8b16b3eb84..c22a7c34aa9 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/datastructure/AlignedTVList.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/datastructure/AlignedTVList.java @@ -19,6 +19,7 @@ package org.apache.iotdb.db.utils.datastructure; +import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext; import org.apache.iotdb.db.queryengine.execution.fragment.QueryContext; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; @@ -1284,11 +1285,12 @@ public abstract class AlignedTVList extends TVList { } private static long listRamCostWithReferences(List<?> list) { - return RamUsageEstimator.shallowSizeOf(list) + RamUsageEstimator.sizeOfObjectArray(list.size()); + return MemoryEstimationHelper.ARRAY_LIST_INSTANCE_SIZE + + RamUsageEstimator.sizeOfObjectArray(list.size()); } private static long listRamCostWithoutReferences(List<?> list) { - return RamUsageEstimator.shallowSizeOf(list) + return MemoryEstimationHelper.ARRAY_LIST_INSTANCE_SIZE + (list.isEmpty() ? 0 : RamUsageEstimator.sizeOfObjectArray(0)); }
