sg_get_page_stats, sg_get_page_stats_r, sg_get_page_stats_diff, sg_get_page_stats_diff_between, sg_free_page_stats — get paging statistics


#include <statgrab.h>
sg_page_stats *sg_get_page_stats(entries); 
size_t *entries;
sg_page_stats *sg_get_page_stats_r(entries); 
size_t *entries;
sg_page_stats *sg_get_page_stats_diff(entries); 
size_t *entries;
sg_page_stats *sg_get_page_stats_diff_between(cur,  
const sg_page_stats *cur;
const sg_page_stats *last;
size_t *entries;
sg_error sg_free_page_stats(data); 
sg_page_stats *data;


The page stats module deliver the number of pages swapped in and out, either since the machine has been booted (by the sg_get_page_stats() and sg_get_page_stats_r() functions) or the difference between two measured statistics (by the sg_get_page_stats_diff() and sg_get_page_stats_diff_between() functions).

The sg_get_page_stats_diff() function calculates the difference between the last call to the function sg_get_page_stats() in this thread (the statistics of the earlier call are saved and sg_get_page_stats() is called immediately after this).

Table 1. API Shortcut

functionreturnsdata owner
sg_get_page_statssg_page_stats *libstatgrab (thread local)
sg_get_page_stats_rsg_page_stats *caller
sg_get_page_stats_diffsg_page_stats *libstatgrab (thread local)
sg_get_page_stats_diff_betweensg_page_stats *caller

The sg_page_stats buffer received from sg_get_page_stats_r() and the sg_get_page_stats_diff_between() must be freed using sg_free_page_stats() when not needed any more. The caller is responsible for doing it.

Return Values

typedef struct{
        unsigned long long pages_pagein;
        unsigned long long pages_pageout;
        time_t systime;

The number of pages swapped into memory.


The number of pages swapped out of memory (to swap).


The timestamp when the above stats where collected in seconds since epoch or the time period over which pages_pagein and pages_pageout were transferred.


Solaris doesn't seem to report accurately. It reports the number of pages swapped into memory, not necessarily from swap. This feature isn't deemed entirely reliable.

See Also