class Memory
Represents memory usage for a process, sizes are in bytes.
Nested Classes and Modules
class DarwinDarwin (macOS) implementation of per-process memory metrics using vmmap(1). Parses vmmap output for virtual/resident/dirty/swap per region and maps sharing mode (PRV, COW, SHM) to private/shared fields.
class LinuxLinux implementation of per-process memory metrics using
/proc/[pid]/smapsor/proc/[pid]/smaps_rollup, and/proc/[pid]/statfor fault counters. Prefers smaps_rollup when readable (single summary); otherwise falls back to full smaps and counts maps from /proc/[pid]/maps.
Definitions
def to_json(*arguments)
Convert the object to a JSON string.
Implementation
def to_json(*arguments)
as_json.to_json(*arguments)
end
def total_size
The total size of the process in memory.
Implementation
def total_size
self.resident_size + self.swap_size
end
def self.total_size
Total system/host memory in bytes. Delegates to Host::Memory.capture.
Signature
-
returns
Integer | Nil
Implementation
def self.total_size
Host::Memory.capture&.total_size
end
def private_size
The private set size, the size of completely private (unshared) data. This is the sum of Private_Clean and Private_Dirty pages.
Signature
-
returns
Integer Total private memory in bytes.
Implementation
def private_size
self.private_clean_size + self.private_dirty_size
end
alias unique_size private_size
The private set size is also known as the unique set size.
def self.zero
Create a zero-initialized Memory instance.
Signature
-
returns
Memory A new Memory object with all fields set to zero.
Implementation
def self.zero
self.new(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
end
def self.supported?
Whether the memory usage can be captured on this system.
Implementation
def self.supported?
false
end
def self.capture(pid, **options)
Capture memory usage for the given process IDs.
Implementation
def self.capture(pid, **options)
return nil
end