Module: Gio::MemoryMonitor

Defined in:


GMemory::Monitor will monitor system memory and suggest to the application when to free memory so as to leave more room for other applications. It is implemented on Linux using the [Low Memory Monitor]( ([API documentation](

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

See GMemory::MonitorWarningLevel for details on the various warning levels.

static void
warning_cb (GMemoryMonitor *m, GMemoryMonitorWarningLevel level)
  g_debug ("Warning level: %d", level);
    drop_caches ();

static GMemoryMonitor *
monitor_low_memory (void)
  GMemoryMonitor *m;
  m = g_memory_monitor_dup_default ();
  g_signal_connect (G_OBJECT (m), "low-memory-warning",
                    G_CALLBACK (warning_cb), NULL);
  return m;

Don’t forget to disconnect the GMemory::Monitor::low-memory-warning signal, and unref the GMemory::Monitor itself when exiting.

Instance Method Summary collapse

Instance Method Details

#low_memory_warning(level) ⇒ nil



  • (nil)