SystemMemoryInfo class
A best-effort snapshot of the machine's total and currently-available
physical memory, probed by shelling out to a short OS command
(Process.runSync) — there is no portable Dart/dart:io API for this,
and no reading at all is possible on a sandboxed mobile OS (iOS/Android
don't expose system-wide memory to an app, and Process itself isn't
available there).
probe never throws: any failure — an unsupported platform, a missing
command, output in an unexpected shape — is treated the same as "no
reading available" and produces null. Callers that need a memory
budget regardless (see TiffAutoDecodeBudget) should always have a
fixed fallback for that case.
Constructors
- SystemMemoryInfo({required int totalBytes, required int availableBytes})
-
const
Properties
- availableBytes → int
-
Currently unused RAM plus RAM the OS could reclaim without swapping
(e.g. macOS's inactive pages, Linux's
MemAvailable) — a much more useful number than totalBytes for "how much can I safely claim right now", since most of totalBytes is normally already in use by the OS and other processes.final - hashCode → int
-
The hash code for this object.
no setterinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- totalBytes → int
-
Total physical RAM installed on the machine.
final
Methods
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Static Methods
-
probe(
{Duration maxAge = const Duration(seconds: 5)}) → SystemMemoryInfo? -
Reads current system memory, or
nullif unavailable on this platform/right now (see the class doc comment). Shelling out on every call would be wasteful for a caller probing repeatedly in a short window, so a reading is reused formaxAgebefore this shells out again; passDuration.zeroto force a fresh read.