There is also an implementation for use inside Flatpak sandboxes.
Possible actions to take when the signal is received are:
Free caches
Save files that haven’t been looked at in a while to disk, ready to be reopened when needed
Run a garbage collection cycle
Try and compress fragmented allocations
Exit on idle if the process has no reason to stay around
Call [`malloc_trim(3)`](man:malloc_trim(3)) to return cached heap pages to the kernel (if supported by your libc)
Note that some actions may not always improve system performance, and so should be profiled for your application. `malloc_trim()`, for
example, may make future heap allocations slower (due to releasing cached heap pages back to the kernel).
See [type@Gio.MemoryMonitorWarningLevel] for details on the various warning levels.
Don’t forget to disconnect the [signal@Gio.MemoryMonitor:GMemoryMonitor:low-memory-warning] signal, and unref the
`GMemoryMonitor` itself when exiting.