### Interface

# Gio PowerProfileMonitor

since: 2.70

#### Description [src]

    interface Gio.PowerProfileMonitor : Gio.Initable

`GPowerProfileMonitor` makes it possible for applications as well as OS components to monitor system power profiles and act upon them. It currently only exports whether the system is in “Power Saver” mode (known as “Low Power” mode on some systems).

When in “Low Power” mode, it is recommended that applications:

- disable automatic downloads;
- reduce the rate of refresh from online sources such as calendar or email synchronisation;
- reduce the use of expensive visual effects.

It is also likely that OS components providing services to applications will lower their own background activity, for the sake of the system.

There are a variety of tools that exist for power consumption analysis, but those usually depend on the OS and hardware used. On Linux, one could use `upower` to monitor the battery discharge rate, `powertop` to check on the background activity or activity at all), `sysprof` to inspect CPU usage, and `intel_gpu_time` to profile GPU usage.

Don’t forget to disconnect the `GObject::notify` signal for `GPowerProfileMonitor:power-saver-enabled`, and unref the `GPowerProfileMonitor` itself when exiting.

Available since: 2.70

#### Prerequisite

In order to implement PowerProfileMonitor, your type must inherit from`GInitable`.

#### Functions

###### g_power_profile_monitor_dup_default

Gets a reference to the default `GPowerProfileMonitor` for the system.

since: 2.70

#### Instance methods

###### g_power_profile_monitor_get_power_saver_enabled

Gets whether the system is in “Power Saver” mode.

since: 2.70

#### Properties

###### Gio.PowerProfileMonitor:power-saver-enabled

Whether “Power Saver” mode is enabled on the system.

since: 2.70

#### Interface structure

    struct GioPowerProfileMonitorInterface {
      /* no available fields */
    }

The virtual function table for `GPowerProfileMonitor`.