⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pg_rusage.c

📁 PostgreSQL 8.1.4的源码 适用于Linux下的开源数据库系统
💻 C
字号:
/*------------------------------------------------------------------------- * * pg_rusage.c *	  Resource usage measurement support routines. * * * Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * * * IDENTIFICATION *	  $PostgreSQL: pgsql/src/backend/utils/misc/pg_rusage.c,v 1.3 2005/10/22 14:27:29 adunstan Exp $ * *------------------------------------------------------------------------- */#include "postgres.h"#include <unistd.h>#include "utils/pg_rusage.h"/* * Initialize usage snapshot. */voidpg_rusage_init(PGRUsage *ru0){	getrusage(RUSAGE_SELF, &ru0->ru);	gettimeofday(&ru0->tv, NULL);}/* * Compute elapsed time since ru0 usage snapshot, and format into * a displayable string.  Result is in a static string, which is * tacky, but no one ever claimed that the Postgres backend is * threadable... */const char *pg_rusage_show(const PGRUsage *ru0){	static char result[100];	PGRUsage	ru1;	pg_rusage_init(&ru1);	if (ru1.tv.tv_usec < ru0->tv.tv_usec)	{		ru1.tv.tv_sec--;		ru1.tv.tv_usec += 1000000;	}	if (ru1.ru.ru_stime.tv_usec < ru0->ru.ru_stime.tv_usec)	{		ru1.ru.ru_stime.tv_sec--;		ru1.ru.ru_stime.tv_usec += 1000000;	}	if (ru1.ru.ru_utime.tv_usec < ru0->ru.ru_utime.tv_usec)	{		ru1.ru.ru_utime.tv_sec--;		ru1.ru.ru_utime.tv_usec += 1000000;	}	snprintf(result, sizeof(result),			 "CPU %d.%02ds/%d.%02du sec elapsed %d.%02d sec",			 (int) (ru1.ru.ru_stime.tv_sec - ru0->ru.ru_stime.tv_sec),		  (int) (ru1.ru.ru_stime.tv_usec - ru0->ru.ru_stime.tv_usec) / 10000,			 (int) (ru1.ru.ru_utime.tv_sec - ru0->ru.ru_utime.tv_sec),		  (int) (ru1.ru.ru_utime.tv_usec - ru0->ru.ru_utime.tv_usec) / 10000,			 (int) (ru1.tv.tv_sec - ru0->tv.tv_sec),			 (int) (ru1.tv.tv_usec - ru0->tv.tv_usec) / 10000);	return result;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -