Class LinuxGlobalMemory

java.lang.Object
oshi.hardware.common.AbstractGlobalMemory
oshi.hardware.platform.linux.LinuxGlobalMemory
All Implemented Interfaces:
GlobalMemory

@ThreadSafe public final class LinuxGlobalMemory extends AbstractGlobalMemory
Memory obtained by /proc/meminfo and sysinfo.totalram
  • Field Details

  • Constructor Details

    • LinuxGlobalMemory

      public LinuxGlobalMemory()
  • Method Details

    • getAvailable

      public long getAvailable()
      Description copied from interface: GlobalMemory
      The amount of physical memory currently available, in bytes.
      Returns:
      Available number of bytes.
    • getTotal

      public long getTotal()
      Description copied from interface: GlobalMemory
      The amount of actual physical memory, in bytes.
      Returns:
      Total number of bytes.
    • getPageSize

      public long getPageSize()
      Description copied from interface: GlobalMemory
      The number of bytes in a memory page
      Returns:
      Page size in bytes.
    • getVirtualMemory

      public VirtualMemory getVirtualMemory()
      Description copied from interface: GlobalMemory
      Virtual memory, such as a swap file.
      Returns:
      A VirtualMemory object.
    • readMemInfo

      private static Pair<Long,Long> readMemInfo()
      Updates instance variables from reading /proc/meminfo. While most of the information is available in the sysinfo structure, the most accurate calculation of MemAvailable is only available from reading this pseudo-file. The maintainers of the Linux Kernel have indicated this location will be kept up to date if the calculation changes: see https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/? id=34e431b0ae398fc54ea69ff85ec700722c9da773

      Internally, reading /proc/meminfo is faster than sysinfo because it only spends time populating the memory components of the sysinfo structure.

      Returns:
      A pair containing available and total memory in bytes
    • createVirtualMemory

      private VirtualMemory createVirtualMemory()