File tree Expand file tree Collapse file tree 1 file changed +13
-3
lines changed
espresso/src/com.oracle.truffle.espresso/src/com/oracle/truffle/espresso/vm Expand file tree Collapse file tree 1 file changed +13
-3
lines changed Original file line number Diff line number Diff line change @@ -162,6 +162,8 @@ public final class Management extends NativeEnv {
162
162
@ CompilationFinal //
163
163
private int managementVersion ;
164
164
165
+ private MemoryMXBean memoryMXBean ;
166
+
165
167
private final @ Pointer TruffleObject initializeManagementContext ;
166
168
private final @ Pointer TruffleObject disposeManagementContext ;
167
169
@@ -180,6 +182,14 @@ protected TruffleLogger getLogger() {
180
182
return LOGGER ;
181
183
}
182
184
185
+ @ TruffleBoundary
186
+ private MemoryMXBean getHostMemoryMXBean () {
187
+ if (memoryMXBean == null ) {
188
+ memoryMXBean = ManagementFactory .getMemoryMXBean ();
189
+ }
190
+ return memoryMXBean ;
191
+ }
192
+
183
193
/**
184
194
* Procedure to support a new management version in Espresso:
185
195
* <ul>
@@ -611,11 +621,11 @@ private StaticObject asGuestUsage(MemoryUsage usage, Meta meta) {
611
621
@ TruffleBoundary
612
622
public @ JavaType (Object .class ) StaticObject GetMemoryUsage (@ SuppressWarnings ("unused" ) boolean heap , @ Inject Meta meta ) {
613
623
MemoryUsage usage ;
614
- MemoryMXBean memoryMXBean = ManagementFactory . getMemoryMXBean ();
624
+ MemoryMXBean hostBean = getHostMemoryMXBean ();
615
625
if (heap ) {
616
- usage = memoryMXBean .getHeapMemoryUsage ();
626
+ usage = hostBean .getHeapMemoryUsage ();
617
627
} else {
618
- usage = memoryMXBean .getNonHeapMemoryUsage ();
628
+ usage = hostBean .getNonHeapMemoryUsage ();
619
629
}
620
630
return asGuestUsage (usage , meta );
621
631
}
You can’t perform that action at this time.
0 commit comments