1 /* 2 * Copyright 2016-2022 The OSHI Project Contributors 3 * SPDX-License-Identifier: MIT 4 */ 5 package oshi.hardware; 6 7 import java.util.List; 8 9 import oshi.annotation.concurrent.ThreadSafe; 10 11 /** 12 * The GlobalMemory class tracks information about the use of a computer's physical memory (RAM) as well as any 13 * available virtual memory. 14 */ 15 @ThreadSafe 16 public interface GlobalMemory { 17 /** 18 * The amount of actual physical memory, in bytes. 19 * 20 * @return Total number of bytes. 21 */ 22 long getTotal(); 23 24 /** 25 * The amount of physical memory currently available, in bytes. 26 * 27 * @return Available number of bytes. 28 */ 29 long getAvailable(); 30 31 /** 32 * The number of bytes in a memory page 33 * 34 * @return Page size in bytes. 35 */ 36 long getPageSize(); 37 38 /** 39 * Virtual memory, such as a swap file. 40 * 41 * @return A VirtualMemory object. 42 */ 43 VirtualMemory getVirtualMemory(); 44 45 /** 46 * Physical memory, such as banks of memory. 47 * <p> 48 * On Linux, requires elevated permissions. On FreeBSD and Solaris, requires installation of dmidecode. 49 * 50 * @return A list of PhysicalMemory objects. 51 */ 52 List<PhysicalMemory> getPhysicalMemory(); 53 }