1 | static bool compressedOOPSEnabled_is64bitHotSpot; |
2 | static bool compressedOOPSEnabled_compressedOOPS; |
3 | static bool compressedOOPSEnabled_checked; |
4 | |
5 | static bool compressedOOPSEnabled() { |
6 | if (compressedOOPSEnabled_checked) ret compressedOOPSEnabled_compressedOOPS; |
7 | |
8 | S OS_ARCH = System.getProperty("os.arch"); |
9 | S MANAGEMENT_FACTORY_CLASS = "java.lang.management.ManagementFactory"; |
10 | S HOTSPOT_BEAN_CLASS = "com.sun.management.HotSpotDiagnosticMXBean"; |
11 | |
12 | S x = System.getProperty("sun.arch.data.model"); |
13 | bool is64Bit = contains(or(x, OS_ARCH), "64"); |
14 | |
15 | if (is64Bit) { |
16 | try { |
17 | final Class<?> beanClazz = Class.forName(HOTSPOT_BEAN_CLASS); |
18 | final Object hotSpotBean = Class.forName(MANAGEMENT_FACTORY_CLASS).getMethod("getPlatformMXBean", Class.class) |
19 | .invoke(null, beanClazz); |
20 | if (hotSpotBean != null) { |
21 | |
22 | compressedOOPSEnabled_is64bitHotSpot = true; |
23 | final Method getVMOptionMethod = beanClazz.getMethod("getVMOption", String.class); |
24 | try { |
25 | final Object vmOption = getVMOptionMethod.invoke(hotSpotBean, "UseCompressedOops"); |
26 | compressedOOPSEnabled_compressedOOPS = Boolean.parseBoolean(vmOption.getClass().getMethod("getValue").invoke(vmOption).toString()); |
27 | } catch (ReflectiveOperationException | RuntimeException e) { |
28 | compressedOOPSEnabled_is64bitHotSpot = false; |
29 | } |
30 | } |
31 | } catch (ReflectiveOperationException | RuntimeException e) { |
32 | compressedOOPSEnabled_is64bitHotSpot = false; |
33 | } |
34 | } |
35 | |
36 | compressedOOPSEnabled_checked = true; |
37 | ret compressedOOPSEnabled_compressedOOPS; |
38 | } |
Began life as a copy of #1011522
download show line numbers debug dex old transpilations
Travelled to 3 computer(s): bhatertpkbcr, mowyntqkapby, mqqgnosmbjvj
No comments. add comment
Snippet ID: | #1035194 |
Snippet name: | compressedOOPSEnabled (backup) |
Eternal ID of this version: | #1035194/1 |
Text MD5: | 69b9c52daab97075ae1e6a0e942b7a30 |
Author: | stefan |
Category: | javax |
Type: | JavaX fragment (include) |
Public (visible to everyone): | Yes |
Archived (hidden from active list): | No |
Created/modified: | 2022-04-11 19:47:07 |
Source code size: | 1720 bytes / 38 lines |
Pitched / IR pitched: | No / No |
Views / Downloads: | 115 / 125 |
Referenced in: | [show references] |