From 29fda9336d35591fec04da44f6c414ea83386efb Mon Sep 17 00:00:00 2001 From: Robert Haas Date: Fri, 27 Jul 2012 11:03:00 -0400 Subject: [PATCH] Separate dynahash insert, search, delete tests. --- contrib/hashtest/hashtest--1.0.sql | 14 ++++++++-- contrib/hashtest/hashtest.c | 42 +++++++++++++++--------------- 2 files changed, 33 insertions(+), 23 deletions(-) diff --git a/contrib/hashtest/hashtest--1.0.sql b/contrib/hashtest/hashtest--1.0.sql index 4b249018f9..d6e3fba8bf 100644 --- a/contrib/hashtest/hashtest--1.0.sql +++ b/contrib/hashtest/hashtest--1.0.sql @@ -16,7 +16,17 @@ RETURNS void AS 'MODULE_PATHNAME', 'chash_delete_test' LANGUAGE C; -CREATE FUNCTION test_dynahash() +CREATE FUNCTION dynahash_insert_test() RETURNS void -AS 'MODULE_PATHNAME', 'test_dynahash' +AS 'MODULE_PATHNAME', 'dynahash_insert_test' +LANGUAGE C; + +CREATE FUNCTION dynahash_search_test() +RETURNS void +AS 'MODULE_PATHNAME', 'dynahash_search_test' +LANGUAGE C; + +CREATE FUNCTION dynahash_delete_test() +RETURNS void +AS 'MODULE_PATHNAME', 'dynahash_delete_test' LANGUAGE C; diff --git a/contrib/hashtest/hashtest.c b/contrib/hashtest/hashtest.c index e0c70740df..c155f7a1a4 100644 --- a/contrib/hashtest/hashtest.c +++ b/contrib/hashtest/hashtest.c @@ -17,13 +17,17 @@ void _PG_init(void); Datum chash_insert_test(PG_FUNCTION_ARGS); Datum chash_search_test(PG_FUNCTION_ARGS); Datum chash_delete_test(PG_FUNCTION_ARGS); -Datum test_dynahash(PG_FUNCTION_ARGS); +Datum dynahash_insert_test(PG_FUNCTION_ARGS); +Datum dynahash_search_test(PG_FUNCTION_ARGS); +Datum dynahash_delete_test(PG_FUNCTION_ARGS); static void hashtest_shmem_startup(void); PG_FUNCTION_INFO_V1(chash_insert_test); PG_FUNCTION_INFO_V1(chash_search_test); PG_FUNCTION_INFO_V1(chash_delete_test); -PG_FUNCTION_INFO_V1(test_dynahash); +PG_FUNCTION_INFO_V1(dynahash_insert_test); +PG_FUNCTION_INFO_V1(dynahash_search_test); +PG_FUNCTION_INFO_V1(dynahash_delete_test); typedef struct { @@ -219,15 +223,9 @@ dynahash_delete(uint32 key) } Datum -test_dynahash(PG_FUNCTION_ARGS) +dynahash_insert_test(PG_FUNCTION_ARGS) { uint32 i; - instr_time t0, - t1, - t2, - t3; - - INSTR_TIME_SET_CURRENT(t0); for (i = 0; i < 1000000; ++i) { @@ -241,7 +239,13 @@ test_dynahash(PG_FUNCTION_ARGS) elog(LOG, "insert %u: worked twice", i); } - INSTR_TIME_SET_CURRENT(t1); + PG_RETURN_VOID(); +} + +Datum +dynahash_search_test(PG_FUNCTION_ARGS) +{ + uint32 i; for (i = 0; i < 1000000; ++i) { @@ -255,7 +259,13 @@ test_dynahash(PG_FUNCTION_ARGS) elog(LOG, "search %u: found %u", i, val); } - INSTR_TIME_SET_CURRENT(t2); + PG_RETURN_VOID(); +} + +Datum +dynahash_delete_test(PG_FUNCTION_ARGS) +{ + uint32 i; for (i = 0; i < 1000000; ++i) { @@ -269,15 +279,5 @@ test_dynahash(PG_FUNCTION_ARGS) elog(LOG, "delete %u: found twice", i); } - INSTR_TIME_SET_CURRENT(t3); - INSTR_TIME_SUBTRACT(t3, t2); - INSTR_TIME_SUBTRACT(t2, t1); - INSTR_TIME_SUBTRACT(t1, t0); - - elog(LOG, "inserts: %lu us; searches: %lu us; deletes: %lu us", - (unsigned long) INSTR_TIME_GET_MICROSEC(t1), - (unsigned long) INSTR_TIME_GET_MICROSEC(t2), - (unsigned long) INSTR_TIME_GET_MICROSEC(t3)); - PG_RETURN_VOID(); } -- 2.39.5