1/*-------------------------------------------------------------------------
4 * Resource usage measurement support routines.
7 * Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group
8 * Portions Copyright (c) 1994, Regents of the University of California
12 * src/backend/utils/misc/pg_rusage.c
14 *-------------------------------------------------------------------------
24 * Initialize usage snapshot.
34 * Compute elapsed time since ru0 usage snapshot, and format into
35 * a displayable string. Result is in a static string, which is
36 * tacky, but no one ever claimed that the Postgres backend is
42 static char result[100];
47 if (ru1.
tv.tv_usec < ru0->
tv.tv_usec)
50 ru1.
tv.tv_usec += 1000000;
64 _(
"CPU: user: %d.%02d s, system: %d.%02d s, elapsed: %d.%02d s"),
69 (
int) (ru1.
tv.tv_sec - ru0->
tv.tv_sec),
70 (
int) (ru1.
tv.tv_usec - ru0->
tv.tv_usec) / 10000);
const char * pg_rusage_show(const PGRUsage *ru0)
void pg_rusage_init(PGRUsage *ru0)
int getrusage(int who, struct rusage *rusage)
int gettimeofday(struct timeval *tp, void *tzp)