Enum JvmInformation

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Comparable<JvmInformation>

    public enum JvmInformation
    extends java.lang.Enum<JvmInformation>
    Detects and represents JVM-specific properties that relate to the memory data model for java objects that are useful for size of calculations.
    Author:
    jhouse, Chris Dennis
    • Enum Constant Detail

      • UNKNOWN_32_BIT

        public static final JvmInformation UNKNOWN_32_BIT
        Represents Generic 32-bit
      • UNKNOWN_64_BIT

        public static final JvmInformation UNKNOWN_64_BIT
        Represents 64-Bit Generic JVM
      • HOTSPOT_32_BIT

        public static final JvmInformation HOTSPOT_32_BIT
        Represents HotSpot 32-bit
      • HOTSPOT_32_BIT_WITH_CONCURRENT_MARK_AND_SWEEP

        public static final JvmInformation HOTSPOT_32_BIT_WITH_CONCURRENT_MARK_AND_SWEEP
        Represents 32-Bit HotSpot JVM with Concurrent Mark-and-Sweep GC
      • HOTSPOT_64_BIT

        public static final JvmInformation HOTSPOT_64_BIT
        Represents 64-Bit HotSpot JVM
      • HOTSPOT_64_BIT_WITH_CONCURRENT_MARK_AND_SWEEP

        public static final JvmInformation HOTSPOT_64_BIT_WITH_CONCURRENT_MARK_AND_SWEEP
        Represents 64-Bit HotSpot JVM with Concurrent Mark-and-Sweep GC
      • HOTSPOT_64_BIT_WITH_COMPRESSED_OOPS

        public static final JvmInformation HOTSPOT_64_BIT_WITH_COMPRESSED_OOPS
        Represents 64-Bit HotSpot JVM with Compressed OOPs
      • HOTSPOT_64_BIT_WITH_COMPRESSED_OOPS_AND_CONCURRENT_MARK_AND_SWEEP

        public static final JvmInformation HOTSPOT_64_BIT_WITH_COMPRESSED_OOPS_AND_CONCURRENT_MARK_AND_SWEEP
        Represents 64-Bit HotSpot JVM with Compressed OOPs and Concurrent Mark-and-Sweep GC
      • OPENJDK_32_BIT

        public static final JvmInformation OPENJDK_32_BIT
        Represents OpenJDK 32-bit
      • OPENJDK_32_BIT_WITH_CONCURRENT_MARK_AND_SWEEP

        public static final JvmInformation OPENJDK_32_BIT_WITH_CONCURRENT_MARK_AND_SWEEP
        Represents 32-Bit OpenJDK JVM with Concurrent Mark-and-Sweep GC
      • OPENJDK_64_BIT

        public static final JvmInformation OPENJDK_64_BIT
        Represents 64-Bit OpenJDK JVM
      • OPENJDK_64_BIT_WITH_CONCURRENT_MARK_AND_SWEEP

        public static final JvmInformation OPENJDK_64_BIT_WITH_CONCURRENT_MARK_AND_SWEEP
        Represents 64-Bit OpenJDK JVM with Concurrent Mark-and-Sweep GC
      • OPENJDK_64_BIT_WITH_COMPRESSED_OOPS

        public static final JvmInformation OPENJDK_64_BIT_WITH_COMPRESSED_OOPS
        Represents 64-Bit OpenJDK JVM with Compressed OOPs
      • OPENJDK_64_BIT_WITH_COMPRESSED_OOPS_AND_CONCURRENT_MARK_AND_SWEEP

        public static final JvmInformation OPENJDK_64_BIT_WITH_COMPRESSED_OOPS_AND_CONCURRENT_MARK_AND_SWEEP
        Represents 64-Bit OpenJDK JVM with Compressed OOPs and Concurrent Mark-and-Sweep GC
      • IBM_32_BIT

        public static final JvmInformation IBM_32_BIT
        Represents IBM 32-bit
      • IBM_64_BIT

        public static final JvmInformation IBM_64_BIT
        Represents 64-Bit IBM JVM (with no reference compression)
      • IBM_64_BIT_WITH_COMPRESSED_REFS

        public static final JvmInformation IBM_64_BIT_WITH_COMPRESSED_REFS
        Represents 64-Bit IBM JVM (with reference compression)
    • Field Detail

      • CURRENT_JVM_INFORMATION

        public static final JvmInformation CURRENT_JVM_INFORMATION
        The JvmInformation instance representing the current JVM
    • Method Detail

      • values

        public static JvmInformation[] values()
        Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:
        for (JvmInformation c : JvmInformation.values())
            System.out.println(c);
        
        Returns:
        an array containing the constants of this enum type, in the order they are declared
      • valueOf

        public static JvmInformation valueOf​(java.lang.String name)
        Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
        Parameters:
        name - the name of the enum constant to be returned.
        Returns:
        the enum constant with the specified name
        Throws:
        java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
        java.lang.NullPointerException - if the argument is null
      • getPointerSize

        public int getPointerSize()
        Size of a pointer in bytes on this runtime
      • getJavaPointerSize

        public int getJavaPointerSize()
        Size of a java pointer in bytes on this runtime (that differs when compressedOops are being used)
      • getMinimumObjectSize

        public int getMinimumObjectSize()
        Minimal size an object will occupy on the heap in bytes.
      • getObjectAlignment

        public int getObjectAlignment()
        Object alignment / padding in bytes
      • getObjectHeaderSize

        public int getObjectHeaderSize()
        The size of an object header in bytes.
      • getFieldOffsetAdjustment

        public int getFieldOffsetAdjustment()
        The size of the jvm-specific field offset adjustment in bytes.
      • getAgentSizeOfAdjustment

        public int getAgentSizeOfAdjustment()
        The size of the jvm-specific agent result adjustment in bytes.
      • supportsAgentSizeOf

        public boolean supportsAgentSizeOf()
        Whether the jvm can support AgentSizeOf implementation.
      • supportsUnsafeSizeOf

        public boolean supportsUnsafeSizeOf()
        Whether the jvm can support UnsafeSizeOf implementation.
      • supportsReflectionSizeOf

        public boolean supportsReflectionSizeOf()
        Whether the jvm can support ReflectionSizeOf implementation.
      • getJvmDescription

        public abstract java.lang.String getJvmDescription()
        A human-readable description of the JVM and its relevant enabled options.Os
      • isOSX

        public static boolean isOSX()
        Return true if the VM's vendor is Apple
        Returns:
        true, if OS X
      • isHotspot

        public static boolean isHotspot()
        Returns true if VM vendor is Hotspot
        Returns:
        true, if Hotspot
      • isOpenJDK

        public static boolean isOpenJDK()
        Returns true if VM vendor is OpenJDK
        Returns:
        true, if OpenJDK
      • isIBM

        public static boolean isIBM()
        Returns true if VM vendor is IBM
        Returns:
        true, if IBM