Resource Usage of X Clients

Resource Usage of X Clients — reading resource usage of X clients.

Stability Level

Unstable, unless otherwise indicated

Synopsis

#include <libwnck/libwnck.h>

struct              WnckResourceUsage;
void                wnck_xid_read_resource_usage        (GdkDisplay *gdk_display,
                                                         gulong xid,
                                                         WnckResourceUsage *usage);
void                wnck_pid_read_resource_usage        (GdkDisplay *gdk_display,
                                                         gulong pid,
                                                         WnckResourceUsage *usage);

Description

libwnck provides an easy-to-use interface to the XRes X server extension to read resource usage of X clients, which can be defined either by the X window ID of one of their windows or by the process ID of their process.

Details

struct WnckResourceUsage

struct WnckResourceUsage {
  gulong        total_bytes_estimate;
  
  gulong        pixmap_bytes;

  unsigned int n_pixmaps;
  unsigned int n_windows;
  unsigned int n_gcs;
  unsigned int n_pictures;
  unsigned int n_glyphsets;
  unsigned int n_fonts;
  unsigned int n_colormap_entries;
  unsigned int n_passive_grabs;
  unsigned int n_cursors;
  unsigned int n_other;
};

The WnckResourceUsage struct contains information about the total resource usage of an X client, and the number of resources allocated for each resource type.

gulong total_bytes_estimate;

estimation of the total number of bytes allocated in the X server.

gulong pixmap_bytes;

number of bytes allocated in the X server for resources of type Pixmap.

unsigned int n_pixmaps;

number of Pixmap resources allocated.

unsigned int n_windows;

number of Window resources allocated.

unsigned int n_gcs;

number of GContext resources allocated.

unsigned int n_pictures;

number of Picture resources allocated.

unsigned int n_glyphsets;

number of Glyphset resources allocated.

unsigned int n_fonts;

number of Font resources allocated.

unsigned int n_colormap_entries;

number of Colormap resources allocated.

unsigned int n_passive_grabs;

number of PassiveGrab resources allocated.

unsigned int n_cursors;

number of Cursor resources allocated.

unsigned int n_other;

number of other resources allocated.

Since 2.6


wnck_xid_read_resource_usage ()

void                wnck_xid_read_resource_usage        (GdkDisplay *gdk_display,
                                                         gulong xid,
                                                         WnckResourceUsage *usage);

Looks for the X resource usage of the application owning the X window ID xid on display gdisplay. If no resource usage can be found, then all fields of usage are set to 0.

To properly work, this function requires the XRes extension on the X server.

gdk_display :

a GdkDisplay.

xid :

an X window ID.

usage :

return location for the X resource usage of the application owning the X window ID xid.

Since 2.6


wnck_pid_read_resource_usage ()

void                wnck_pid_read_resource_usage        (GdkDisplay *gdk_display,
                                                         gulong pid,
                                                         WnckResourceUsage *usage);

Looks for the X resource usage of the application with process ID pid on display gdisplay. If no resource usage can be found, then all fields of usage are set to 0.

In order to find the resource usage of an application that does not have an X window visible to libwnck (panel applets do not have any toplevel windows, for example), wnck_pid_read_resource_usage() walks through the whole tree of X windows. Since this walk is expensive in CPU, a cache is created. This cache is updated in the background. This means there is a non-null probability that no resource usage will be found for an application, even if it is an X client. If this happens, calling wnck_pid_read_resource_usage() again after a few seconds should work.

To properly work, this function requires the XRes extension on the X server.

gdk_display :

a GdkDisplay.

pid :

a process ID.

usage :

return location for the X resource usage of the application with process ID pid.

Since 2.6

See Also

wnck_window_get_xid(), wnck_application_get_xid(), wnck_window_get_pid(), wnck_application_get_pid()