Skip to content

Commit d29110f

Browse files
committed
chore: support to calculate object size at runtime for JVM builds
1 parent 37b7e07 commit d29110f

4 files changed

Lines changed: 53 additions & 4 deletions

File tree

stackgres-k8s/e2e/utils/operator

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1751,7 +1751,6 @@ set_max_length() {
17511751
}
17521752
17531753
set_helm_values_for_developer() {
1754-
E2E_OPERATOR_EXTRA_OPTS_INDEX=13
17551754
cat << EOF
17561755
--set-string developer.extraEnv.SG_IMAGE_CLUSTER_CONTROLLER=${CLUSTER_CONTROLLER_IMAGE_NAME}
17571756
--set-string developer.extraOpts[0]=-Dquarkus.log.category."io.stackgres".level=DEBUG
@@ -1770,13 +1769,25 @@ set_helm_values_for_developer() {
17701769
--set-string developer.extraOpts[11]=-Dquarkus.log.category."stackgres-extensions-cache".level=DEBUG
17711770
--set-string developer.extraOpts[12]=-Dquarkus.log.category."io.stackgres.operator.conciliation".level=TRACE
17721771
EOF
1772+
E2E_OPERATOR_EXTRA_OPTS_INDEX=13
1773+
if [ "${IMAGE_TAG%-jvm}" != "$IMAGE_TAG" ]
1774+
then
1775+
cat << EOF
1776+
--set-string developer.extraOpts[$((E2E_OPERATOR_EXTRA_OPTS_INDEX + 0))]=-javaagent:lib/main/com.github.jbellis.jamm-0.4.0.jar
1777+
--set-string developer.extraOpts[$((E2E_OPERATOR_EXTRA_OPTS_INDEX + 1))]=--add-opens=java.base/java.util.concurrent=ALL-UNNAMED
1778+
--set-string developer.extraOpts[$((E2E_OPERATOR_EXTRA_OPTS_INDEX + 2))]=--add-opens=java.base/java.util.function=ALL-UNNAMED
1779+
--set-string developer.extraOpts[$((E2E_OPERATOR_EXTRA_OPTS_INDEX + 3))]=--add-opens=java.base/java.lang.reflect=ALL-UNNAMED
1780+
--set-string developer.extraOpts[$((E2E_OPERATOR_EXTRA_OPTS_INDEX + 3))]=--add-opens=java.base/java.util.regex=ALL-UNNAMED
1781+
EOF
1782+
E2E_OPERATOR_EXTRA_OPTS_INDEX="$((E2E_OPERATOR_EXTRA_OPTS_INDEX + 1))"
1783+
fi
17731784
if [ "$K8S_IP_FAMILY" = ipv6 ]
17741785
then
1775-
E2E_OPERATOR_EXTRA_OPTS_INDEX=15
17761786
cat << EOF
1777-
--set-string developer.extraOpts[13]=-Djava.net.preferIPv6Addresses=true
1778-
--set-string developer.extraOpts[14]=-Djava.net.preferIPv4Stack=false
1787+
--set-string developer.extraOpts[$((E2E_OPERATOR_EXTRA_OPTS_INDEX + 0))]=-Djava.net.preferIPv6Addresses=true
1788+
--set-string developer.extraOpts[$((E2E_OPERATOR_EXTRA_OPTS_INDEX + 1))]=-Djava.net.preferIPv4Stack=false
17791789
EOF
1790+
E2E_OPERATOR_EXTRA_OPTS_INDEX="$((E2E_OPERATOR_EXTRA_OPTS_INDEX + 2))"
17801791
fi
17811792
if [ -n "$E2E_EXTRA_MOUNT_BUILD_PATH" ]
17821793
then

stackgres-k8s/src/common/pom.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,10 @@
6262
<artifactId>prometheus-metrics-exposition-formats</artifactId>
6363
<scope>compile</scope>
6464
</dependency>
65+
<dependency>
66+
<groupId>com.github.jbellis</groupId>
67+
<artifactId>jamm</artifactId>
68+
</dependency>
6569

6670
<dependency>
6771
<groupId>io.stackgres</groupId>
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
/*
2+
* Copyright (C) 2019 OnGres, Inc.
3+
* SPDX-License-Identifier: AGPL-3.0-or-later
4+
*/
5+
6+
package io.stackgres.common;
7+
8+
import org.github.jamm.MemoryMeter;
9+
10+
public final class MemoryUtil {
11+
12+
private MemoryUtil() {
13+
throw new AssertionError("Utility class");
14+
}
15+
16+
public static long measureDeep(Object object) {
17+
try {
18+
return MemoryMeter.builder()
19+
.printVisitedTree()
20+
.build()
21+
.measureDeep(object);
22+
} catch (RuntimeException ex) {
23+
ex.printStackTrace();
24+
throw ex;
25+
}
26+
}
27+
28+
}

stackgres-k8s/src/pom.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@
106106
<pgconfig-validator.version>1.7.1</pgconfig-validator.version>
107107
<auto-service.version>1.1.1</auto-service.version>
108108
<javapoet.version>1.13.0</javapoet.version>
109+
<jamm.version>0.4.0</jamm.version>
109110
<compile-testing.version>0.23.0</compile-testing.version>
110111
<bouncycastle.version>1.70</bouncycastle.version>
111112
<debezium.version>3.3.1.Final</debezium.version>
@@ -291,6 +292,11 @@
291292
<artifactId>javapoet</artifactId>
292293
<version>${javapoet.version}</version>
293294
</dependency>
295+
<dependency>
296+
<groupId>com.github.jbellis</groupId>
297+
<artifactId>jamm</artifactId>
298+
<version>${jamm.version}</version>
299+
</dependency>
294300
<dependency>
295301
<groupId>com.google.testing.compile</groupId>
296302
<artifactId>compile-testing</artifactId>

0 commit comments

Comments
 (0)