[complement-svn] SF.net SVN: complement:[1959] trunk/complement/explore/perf
Status: Pre-Alpha
Brought to you by:
complement
|
From: <com...@us...> - 2008-08-13 16:27:13
|
Revision: 1959
http://complement.svn.sourceforge.net/complement/?rev=1959&view=rev
Author: complement
Date: 2008-08-13 16:27:09 +0000 (Wed, 13 Aug 2008)
Log Message:
-----------
Performance tests for Berkeley DB established
Added Paths:
-----------
trunk/complement/explore/perf/DB/
trunk/complement/explore/perf/DB/Berkeley/
trunk/complement/explore/perf/DB/Berkeley/Makefile
trunk/complement/explore/perf/DB/Berkeley/Makefile.inc
trunk/complement/explore/perf/DB/Berkeley/sc_perf_suite.cc
trunk/complement/explore/perf/DB/Berkeley/sc_perf_suite.h
trunk/complement/explore/perf/DB/Berkeley/suite.cc
Property changes on: trunk/complement/explore/perf/DB/Berkeley
___________________________________________________________________
Added: svn:ignore
+ obj
Added: trunk/complement/explore/perf/DB/Berkeley/Makefile
===================================================================
--- trunk/complement/explore/perf/DB/Berkeley/Makefile (rev 0)
+++ trunk/complement/explore/perf/DB/Berkeley/Makefile 2008-08-13 16:27:09 UTC (rev 1959)
@@ -0,0 +1,45 @@
+# -*- Makefile -*- Time-stamp: <08/07/31 15:43:19 yeti>
+
+SRCROOT := ../../..
+
+include Makefile.inc
+include ${SRCROOT}/Makefiles/gmake/top.mak
+
+
+INCLUDES += -I$(SRCROOT)/include
+INCLUDES += -I..
+ifdef BOOST_DIR
+INCLUDES += -I$(BOOST_INCLUDE_DIR)
+endif
+DEFS += -D__FIT_EXAM
+
+LIBMT_DIR = ${SRCROOT}/lib/mt
+LIBMISC_DIR = ${SRCROOT}/lib/misc
+LIBEXAM_DIR = ${SRCROOT}/lib/exam
+
+ifeq ($(OSNAME),linux)
+
+release-shared: LDFLAGS += -L${LIBMT_DIR}/${OUTPUT_DIR} \
+ -L${LIBEXAM_DIR}/${OUTPUT_DIR} \
+ -L${LIBMISC_DIR}/${OUTPUT_DIR} \
+ -Wl,--rpath=${LIBMT_DIR}/${OUTPUT_DIR}:${LIBEXAM_DIR}/${OUTPUT_DIR}:${LIBMISC_DIR}/${OUTPUT_DIR}:${STLPORT_LIB_DIR}
+
+dbg-shared: LDFLAGS += -L${LIBMT_DIR}/${OUTPUT_DIR_DBG} \
+ -L${LIBEXAM_DIR}/${OUTPUT_DIR_DBG} \
+ -L${LIBMISC_DIR}/${OUTPUT_DIR_DBG} \
+ -Wl,--rpath=${LIBMT_DIR}/${OUTPUT_DIR_DBG}:${LIBEXAM_DIR}/${OUTPUT_DIR_DBG}:${LIBMISC_DIR}/${OUTPUT_DIR_DBG}:${STLPORT_LIB_DIR}
+
+ifndef WITHOUT_STLPORT
+stldbg-shared: LDFLAGS += -L${LIBMT_DIR}/${OUTPUT_DIR_STLDBG} \
+ -L${LIBEXAM_DIR}/${OUTPUT_DIR_STLDBG} \
+ -L${LIBMISC_DIR}/${OUTPUT_DIR_STLDBG} \
+ -Wl,--rpath=${LIBMT_DIR}/${OUTPUT_DIR_STLDBG}:${LIBEXAM_DIR}/${OUTPUT_DIR_STLDBG}:${LIBMISC_DIR}/${OUTPUT_DIR_STLDBG}:${STLPORT_LIB_DIR}
+endif
+
+endif
+
+release-shared : LDLIBS = -lxmt -lexam -lmisc -ldb_cxx -ldb
+dbg-shared : LDLIBS = -lxmtg -lexamg -lmiscg -ldb_cxx -ldb
+ifndef WITHOUT_STLPORT
+stldbg-shared : LDLIBS = -lxmtstlg -lexamstlg -lmiscstlg -ldb_cxx -ldb
+endif
Added: trunk/complement/explore/perf/DB/Berkeley/Makefile.inc
===================================================================
--- trunk/complement/explore/perf/DB/Berkeley/Makefile.inc (rev 0)
+++ trunk/complement/explore/perf/DB/Berkeley/Makefile.inc 2008-08-13 16:27:09 UTC (rev 1959)
@@ -0,0 +1,4 @@
+# -*- makefile -*- Time-stamp: <08/07/28 23:56:21 ptr>
+
+PRGNAME = sleepycat_perf
+SRC_CC = suite.cc sc_perf_suite.cc
Added: trunk/complement/explore/perf/DB/Berkeley/sc_perf_suite.cc
===================================================================
--- trunk/complement/explore/perf/DB/Berkeley/sc_perf_suite.cc (rev 0)
+++ trunk/complement/explore/perf/DB/Berkeley/sc_perf_suite.cc 2008-08-13 16:27:09 UTC (rev 1959)
@@ -0,0 +1,56 @@
+// -*- C++ -*- Time-stamp: <08/08/13 13:28:22 yeti>
+
+/*
+ * Copyright (c) 2008
+ * Petr Ovtchenkov
+ *
+ * Licensed under the Academic Free License Version 3.0
+ */
+
+#include "sc_perf_suite.h"
+#include <vector>
+
+#include <mt/thread>
+#include <mt/mutex>
+
+#include <db_cxx.h>
+#include <sys/stat.h>
+
+using namespace std;
+
+int EXAM_IMPL(sleepycat_test::hash_open)
+{
+ DbEnv env( 0 );
+ const char logDir[] = "./DB_logs";
+
+ mkdir( logDir, 0777 );
+
+ env.set_lg_dir( logDir );
+ env.set_flags(DB_AUTO_COMMIT | DB_LOG_INMEMORY | DB_LOG_AUTOREMOVE, 1);
+ env.open( ".", DB_INIT_TXN | DB_INIT_LOG | DB_CREATE | DB_INIT_MPOOL, 0600);
+
+ Db database( &env, 0 );
+
+ // This should suffice for most users.
+ database.set_h_nelem(30);
+ // The BDB documentation says the fill factor should be
+ // (pagesize - 32) / (average_key_size + average_data_size + 8);
+ // For labels, average key size = sizeof(TId) = 16, average data size = 0,
+ // supposing 4K pages this gives us 169 1/3 for the fill factor.
+ database.set_h_ffactor(150);
+ // For opening in the environment we should use a relative path.
+ database.open( 0, "tmp.db", 0, DB_HASH, DB_CREATE, 0600);
+
+ database.close( 0 );
+
+ unlink( "tmp.db" );
+ unlink( "__db.001" );
+ unlink( "__db.002" );
+ unlink( "__db.003" );
+ unlink( "__db.004" );
+ unlink( "__db.005" );
+
+ rmdir( logDir );
+
+ return 0;
+}
Added: trunk/complement/explore/perf/DB/Berkeley/sc_perf_suite.h
===================================================================
--- trunk/complement/explore/perf/DB/Berkeley/sc_perf_suite.h (rev 0)
+++ trunk/complement/explore/perf/DB/Berkeley/sc_perf_suite.h 2008-08-13 16:27:09 UTC (rev 1959)
@@ -0,0 +1,21 @@
+// -*- C++ -*- Time-stamp: <08/08/13 13:26:19 yeti>
+
+/*
+ * Copyright (c) 2008
+ * Petr Ovtchenkov
+ *
+ * Licensed under the Academic Free License Version 3.0
+ */
+
+#ifndef __ALLOC_PERF_SUITE_H
+#define __ALLOC_PERF_SUITE_H
+
+#include <exam/suite.h>
+
+class sleepycat_test
+{
+ public:
+ int EXAM_DECL(hash_open);
+};
+
+#endif // __ALLOC_PERF_SUITE_H
Added: trunk/complement/explore/perf/DB/Berkeley/suite.cc
===================================================================
--- trunk/complement/explore/perf/DB/Berkeley/suite.cc (rev 0)
+++ trunk/complement/explore/perf/DB/Berkeley/suite.cc 2008-08-13 16:27:09 UTC (rev 1959)
@@ -0,0 +1,30 @@
+// -*- C++ -*- Time-stamp: <08/08/13 13:26:45 yeti>
+
+/*
+ * Copyright (c) 2008
+ * Petr Ovtchenkov
+ *
+ * Licensed under the Academic Free License Version 3.0
+ */
+
+#include "sc_perf_suite.h"
+
+#include <exam/suite.h>
+#include <iostream>
+
+using namespace std;
+
+int main( int, char ** )
+{
+ exam::trivial_time_logger tl( cout );
+
+ exam::test_suite t( "Berkeley DB performance", 20 );
+
+ t.set_logger( &tl );
+
+ sleepycat_test st;
+
+ t.add( &sleepycat_test::hash_open, st, "Open DB with DB_HASH" );
+
+ return t.girdle();
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|