parseLinuxMemInfo static method
Parses /proc/meminfo (Linux) into a MemoryInfo (values are in kB).
Implementation
static MemoryInfo parseLinuxMemInfo(String content) {
int field(String key) {
final match = RegExp(
'^$key:\\s+(\\d+)',
multiLine: true,
).firstMatch(content);
return match == null ? 0 : (int.tryParse(match.group(1)!) ?? 0) * 1024;
}
final total = field('MemTotal');
var available = field('MemAvailable');
if (available == 0) {
available = field('MemFree') + field('Buffers') + field('Cached');
}
final used = (total - available).clamp(0, total);
return MemoryInfo(
totalBytes: total,
usedBytes: used,
availableBytes: available,
);
}