From 43a50a385930ee340d0a3b003910c704a0ff342c Mon Sep 17 00:00:00 2001 From: John Naylor Date: Thu, 6 Oct 2022 09:07:41 +0700 Subject: [PATCH v65 1/5] Turn on per-node counts in benchmark Also add gitigore, fix whitespace, and change to NOTICE --- contrib/bench_radix_tree/.gitignore | 3 +++ contrib/bench_radix_tree/bench_radix_tree.c | 5 +++++ src/backend/lib/radixtree.c | 2 +- src/include/lib/radixtree.h | 2 +- 4 files changed, 10 insertions(+), 2 deletions(-) create mode 100644 contrib/bench_radix_tree/.gitignore diff --git a/contrib/bench_radix_tree/.gitignore b/contrib/bench_radix_tree/.gitignore new file mode 100644 index 0000000000..8830f5460d --- /dev/null +++ b/contrib/bench_radix_tree/.gitignore @@ -0,0 +1,3 @@ +*data +log/* +results/* diff --git a/contrib/bench_radix_tree/bench_radix_tree.c b/contrib/bench_radix_tree/bench_radix_tree.c index 5806ef7519..36c5218ae7 100644 --- a/contrib/bench_radix_tree/bench_radix_tree.c +++ b/contrib/bench_radix_tree/bench_radix_tree.c @@ -13,6 +13,7 @@ #include "fmgr.h" #include "funcapi.h" #include "lib/radixtree.h" +#include #include "miscadmin.h" #include "utils/timestamp.h" @@ -183,6 +184,8 @@ bench_search(FunctionCallInfo fcinfo, bool shuffle) TimestampDifference(start_time, end_time, &secs, &usecs); rt_load_ms = secs * 1000 + usecs / 1000; + rt_stats(rt); + /* measure the load time of the array */ itemptrs = MemoryContextAllocHuge(CurrentMemoryContext, sizeof(ItemPointerData) * ntids); @@ -292,6 +295,8 @@ bench_load_random_int(PG_FUNCTION_ARGS) TimestampDifference(start_time, end_time, &secs, &usecs); load_time_ms = secs * 1000 + usecs / 1000; + rt_stats(rt); + MemSet(nulls, false, sizeof(nulls)); values[0] = Int64GetDatum(rt_memory_usage(rt)); values[1] = Int64GetDatum(load_time_ms); diff --git a/src/backend/lib/radixtree.c b/src/backend/lib/radixtree.c index b163eac480..a84c06f0d4 100644 --- a/src/backend/lib/radixtree.c +++ b/src/backend/lib/radixtree.c @@ -1980,7 +1980,7 @@ rt_verify_node(rt_node *node) void rt_stats(radix_tree *tree) { - fprintf(stderr, "num_keys = %lu, height = %u, n4 = %u, n16 = %u,n32 = %u, n128 = %u, n256 = %u", + elog(NOTICE, "num_keys = %lu, height = %u, n4 = %u, n16 = %u, n32 = %u, n128 = %u, n256 = %u", tree->num_keys, tree->root->shift / RT_NODE_SPAN, tree->cnt[0], diff --git a/src/include/lib/radixtree.h b/src/include/lib/radixtree.h index 38cc6abf4c..d5d7668617 100644 --- a/src/include/lib/radixtree.h +++ b/src/include/lib/radixtree.h @@ -15,7 +15,7 @@ #include "postgres.h" -/* #define RT_DEBUG 1 */ +#define RT_DEBUG 1 typedef struct radix_tree radix_tree; typedef struct rt_iter rt_iter; -- 2.37.3