summaryrefslogtreecommitdiff
path: root/src/backend/storage/buffer/bufmgr.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2001-11-10 23:51:14 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2001-11-10 23:51:14 +0000
commitf6ee99a062071ec03be69a4ec7b2b9a282455060 (patch)
treee2c83f03c4f4c4f822af17a185d16c6a1a54bc60 /src/backend/storage/buffer/bufmgr.c
parent0c1669c806bda3d42bef1cd6972ab8e2bf64f862 (diff)
Clean up usage-statistics display code (ShowUsage and friends). StatFp
is gone, usage messages now go through elog(DEBUG).
Diffstat (limited to 'src/backend/storage/buffer/bufmgr.c')
-rw-r--r--src/backend/storage/buffer/bufmgr.c29
1 files changed, 21 insertions, 8 deletions
diff --git a/src/backend/storage/buffer/bufmgr.c b/src/backend/storage/buffer/bufmgr.c
index 49ee9990be3..43b4da50ed3 100644
--- a/src/backend/storage/buffer/bufmgr.c
+++ b/src/backend/storage/buffer/bufmgr.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/storage/buffer/bufmgr.c,v 1.119 2001/11/05 17:46:27 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/storage/buffer/bufmgr.c,v 1.120 2001/11/10 23:51:14 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -46,6 +46,7 @@
#include <math.h>
#include <signal.h>
+#include "lib/stringinfo.h"
#include "miscadmin.h"
#include "storage/buf_internals.h"
#include "storage/bufmgr.h"
@@ -869,14 +870,21 @@ WaitIO(BufferDesc *buf)
long NDirectFileRead; /* some I/O's are direct file access.
* bypass bufmgr */
-long NDirectFileWrite; /* e.g., I/O in psort and hashjoin. */
+long NDirectFileWrite; /* e.g., I/O in psort and hashjoin. */
-void
-PrintBufferUsage(FILE *statfp)
+
+/*
+ * Return a palloc'd string containing buffer usage statistics.
+ */
+char *
+ShowBufferUsage(void)
{
+ StringInfoData str;
float hitrate;
float localhitrate;
+ initStringInfo(&str);
+
if (ReadBufferCount == 0)
hitrate = 0.0;
else
@@ -887,16 +895,21 @@ PrintBufferUsage(FILE *statfp)
else
localhitrate = (float) LocalBufferHitCount *100.0 / ReadLocalBufferCount;
- fprintf(statfp, "!\tShared blocks: %10ld read, %10ld written, buffer hit rate = %.2f%%\n",
+ appendStringInfo(&str,
+ "!\tShared blocks: %10ld read, %10ld written, buffer hit rate = %.2f%%\n",
ReadBufferCount - BufferHitCount, BufferFlushCount, hitrate);
- fprintf(statfp, "!\tLocal blocks: %10ld read, %10ld written, buffer hit rate = %.2f%%\n",
+ appendStringInfo(&str,
+ "!\tLocal blocks: %10ld read, %10ld written, buffer hit rate = %.2f%%\n",
ReadLocalBufferCount - LocalBufferHitCount, LocalBufferFlushCount, localhitrate);
- fprintf(statfp, "!\tDirect blocks: %10ld read, %10ld written\n",
+ appendStringInfo(&str,
+ "!\tDirect blocks: %10ld read, %10ld written\n",
NDirectFileRead, NDirectFileWrite);
+
+ return str.data;
}
void
-ResetBufferUsage()
+ResetBufferUsage(void)
{
BufferHitCount = 0;
ReadBufferCount = 0;