feat: added swapins and swapouts to the RAM module (#2222)

This commit is contained in:
Serhiy Mytrovtsiy
2024-11-28 18:38:57 +01:00
parent 6a83b27bbb
commit 99cdd3c805
4 changed files with 17 additions and 3 deletions

View File

@@ -29,6 +29,9 @@ public struct RAM_Usage: Codable {
var swap: Swap
var pressure: Pressure
var swapins: Int64
var swapouts: Int64
public var usage: Double {
get { Double((self.total - self.free) / self.total) }
}
@@ -131,7 +134,7 @@ public class RAM: Module {
}
private func loadCallback(_ raw: RAM_Usage?) {
guard raw != nil, let value = raw, self.enabled else { return }
guard let value = raw, self.enabled else { return }
self.popupView.loadCallback(value)
self.portalView.callback(value)
@@ -193,6 +196,8 @@ public class RAM: Module {
case "compressed": replacement = Units(bytes: Int64(value.compressed)).getReadableMemory()
case "app": replacement = Units(bytes: Int64(value.app)).getReadableMemory()
case "cache": replacement = Units(bytes: Int64(value.cache)).getReadableMemory()
case "swapins": replacement = "\(value.swapins)"
case "swapouts": replacement = "\(value.swapouts)"
default: return
}
case "$swap":

View File

@@ -52,6 +52,8 @@ internal class UsageReader: Reader<RAM_Usage> {
let compressed = Double(stats.compressor_page_count) * Double(vm_page_size)
let purgeable = Double(stats.purgeable_count) * Double(vm_page_size)
let external = Double(stats.external_page_count) * Double(vm_page_size)
let swapins = Int64(stats.swapins)
let swapouts = Int64(stats.swapouts)
let used = active + inactive + speculative + wired + compressed - purgeable - external
let free = self.totalSize - used
@@ -89,7 +91,10 @@ internal class UsageReader: Reader<RAM_Usage> {
used: Double(swap.xsu_used),
free: Double(swap.xsu_avail)
),
pressure: Pressure(level: pressureLevel, value: pressureValue)
pressure: Pressure(level: pressureLevel, value: pressureValue),
swapins: swapins,
swapouts: swapouts
))
return
}

View File

@@ -32,6 +32,8 @@ You can use a combination of any of the variables.
<li><b>$mem.compressed</b>: <small>Compressed RAM memory.</small></li>
<li><b>$mem.app</b>: <small>Used RAM memory by applications.</small></li>
<li><b>$mem.cache</b>: <small>Cached RAM memory.</small></li>
<li><b>$mem.swapins</b>: <small>The number of memory pages loaded in from virtual memory to physical memory.</small></li>
<li><b>$mem.swapouts</b>: <small>The number of memory pages swapped out to physical memory from virtual memory.</small></li>
<li><b>$swap.total</b>: <small>Total swap memory.</small></li>
<li><b>$swap.used</b>: <small>Used swap memory.</small></li>
<li><b>$swap.free</b>: <small>Free swap memory.</small></li>

View File

@@ -28,7 +28,9 @@ public struct RAM_entry: TimelineEntry {
app: 16369778688.0,
cache: 12575948800.0,
swap: Swap(total: 0, used: 0, free: 0),
pressure: Pressure(level: 1, value: .normal)
pressure: Pressure(level: 1, value: .normal),
swapins: 14,
swapouts: 16
)
)