PowerProfileMonitor
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 signal@GObject.Object::notify signal for property@Gio.PowerProfileMonitor:power-saver-enabled, and unref the GPowerProfileMonitor
itself when exiting.
Since
2.70
Inheritors
Types
The PowerProfileMonitorImpl type represents a native instance of the PowerProfileMonitor interface.
Properties
Whether “Power Saver” mode is enabled on the system.
Functions
Given @connection to communicate with a proxy (eg, a #GSocketConnection that is connected to the proxy server), this does the necessary handshake to connect to @proxy_address, and if required, wraps the #GIOStream to handle proxy payload.
Asynchronous version of g_proxy_connect().
See g_proxy_connect().
Gets whether the system is in “Power Saver” mode.
Initializes the object implementing the interface.
Some proxy protocols expect to be passed a hostname, which they will resolve to an IP address themselves. Others, like SOCKS4, do not allow this. This function will return false if @proxy is implementing such a protocol. When false is returned, the caller should resolve the destination hostname first, and then pass a #GProxyAddress containing the stringified IP address to g_proxy_connect() or g_proxy_connect_async().