From 2afd84fdb326cce7cca5cece66b96d9f8f71709e Mon Sep 17 00:00:00 2001 From: haoke Date: Tue, 22 Nov 2022 21:15:01 +0800 Subject: [PATCH] [BitSail][core]fixed row utils high usage cpu issue. --- .../bitsail/flink/core/util/RowUtil.java | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/bitsail-cores/bitsail-core-flink/src/main/java/com/bytedance/bitsail/flink/core/util/RowUtil.java b/bitsail-cores/bitsail-core-flink/src/main/java/com/bytedance/bitsail/flink/core/util/RowUtil.java index bbd1e3993..56db57b82 100644 --- a/bitsail-cores/bitsail-core-flink/src/main/java/com/bytedance/bitsail/flink/core/util/RowUtil.java +++ b/bitsail-cores/bitsail-core-flink/src/main/java/com/bytedance/bitsail/flink/core/util/RowUtil.java @@ -19,9 +19,14 @@ import com.bytedance.bitsail.common.column.Column; -import jdk.nashorn.internal.ir.debug.ObjectSizeCalculator; import org.apache.flink.types.Row; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import java.math.BigDecimal; +import java.math.BigInteger; +import java.security.Timestamp; +import java.sql.Time; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; @@ -30,6 +35,7 @@ import java.util.Map; public class RowUtil { + private static final Logger LOG = LoggerFactory.getLogger(RowUtil.class); public static long getRowBytesSize(Row row) { long totalBytes = 0L; @@ -113,7 +119,14 @@ private static long getNormalTypeByteSize(Object field) { return ((Byte[]) field).length; } - if (clazz.isAssignableFrom(Date.class)) { + if (clazz == BigDecimal.class + || clazz == BigInteger.class) { + return 16L; + } + + if (clazz.isAssignableFrom(Date.class) + || clazz.isAssignableFrom(Timestamp.class) + || clazz.isAssignableFrom(Time.class)) { return 12L; } @@ -127,6 +140,7 @@ private static long getNormalTypeByteSize(Object field) { return 15L; } - return ObjectSizeCalculator.getObjectSize(field); + LOG.debug("Object value = {} can't supported in current.", field); + return 0L; } }