[Groonga-commit] groonga/groonga at 4ffee3f [master] benchmark: run N times

Back to archive index

Kouhei Sutou null+****@clear*****
Tue Oct 6 19:54:54 JST 2015


Kouhei Sutou	2015-10-06 19:54:54 +0900 (Tue, 06 Oct 2015)

  New Revision: 4ffee3f262989717050bc31d1c1bb3a7049a71aa
  https://github.com/groonga/groonga/commit/4ffee3f262989717050bc31d1c1bb3a7049a71aa

  Message:
    benchmark: run N times

  Modified files:
    benchmark/bench-result-set.c

  Modified: benchmark/bench-result-set.c (+32 -27)
===================================================================
--- benchmark/bench-result-set.c    2015-10-06 19:23:56 +0900 (57ae55d)
+++ benchmark/bench-result-set.c    2015-10-06 19:54:54 +0900 (bfb8c47)
@@ -26,6 +26,7 @@ typedef struct _BenchmarkData
 {
   gchar *base_dir;
   grn_ctx *context;
+  grn_obj *source_table;
   grn_obj *result_set;
 } BenchmarkData;
 
@@ -69,29 +70,11 @@ static void
 bench_setup(gpointer user_data)
 {
   BenchmarkData *data = user_data;
-  gchar *database_path;
-  grn_obj *source_table;
-  const gchar *source_table_name = "Sources";
-
-  bench_utils_remove_path_recursive_force(data->base_dir);
-  g_mkdir_with_parents(data->base_dir, 0755);
-
-  grn_ctx_init(data->context, 0);
-  database_path = g_build_filename(data->base_dir, "db", NULL);
-  grn_db_create(data->context, database_path, NULL);
-  g_free(database_path);
-
-  source_table = grn_table_create(data->context,
-                                  source_table_name,
-                                  strlen(source_table_name),
-                                  NULL,
-                                  GRN_TABLE_PAT_KEY | GRN_OBJ_PERSISTENT,
-                                  grn_ctx_at(data->context, GRN_DB_SHORT_TEXT),
-                                  NULL);
+
   data->result_set = grn_table_create(data->context,
                                       NULL, 0, NULL,
                                       GRN_TABLE_HASH_KEY | GRN_OBJ_WITH_SUBREC,
-                                      source_table,
+                                      data->source_table,
                                       NULL);
 
 }
@@ -101,8 +84,7 @@ bench_teardown(gpointer user_data)
 {
   BenchmarkData *data = user_data;
 
-  grn_ctx_fin(data->context);
-  bench_utils_remove_path_recursive_force(data->base_dir);
+  grn_obj_close(data->context, data->result_set);
 }
 
 int
@@ -110,13 +92,36 @@ main(int argc, gchar **argv)
 {
   BenchmarkData data;
   BenchReporter *reporter;
-  gint n = 1;
+  gchar *base_dir;
+  grn_ctx ctx;
+  gint n = 100;
 
   grn_init();
   bench_init(&argc, &argv);
 
-  data.context = g_new(grn_ctx, 1);
-  data.base_dir = g_build_filename(g_get_tmp_dir(), "groonga-bench", NULL);
+  data.context = &ctx;
+
+  base_dir = g_build_filename(g_get_tmp_dir(), "groonga-bench", NULL);
+  bench_utils_remove_path_recursive_force(base_dir);
+  g_mkdir_with_parents(base_dir, 0755);
+
+  {
+    gchar *database_path;
+    const gchar *source_table_name = "Sources";
+
+    grn_ctx_init(&ctx, 0);
+    database_path = g_build_filename(base_dir, "db", NULL);
+    grn_db_create(&ctx, database_path, NULL);
+    g_free(database_path);
+
+    data.source_table = grn_table_create(&ctx,
+                                         source_table_name,
+                                         strlen(source_table_name),
+                                         NULL,
+                                         GRN_TABLE_PAT_KEY | GRN_OBJ_PERSISTENT,
+                                         grn_ctx_at(&ctx, GRN_DB_SHORT_TEXT),
+                                         NULL);
+  }
 
   reporter = bench_reporter_new();
   bench_reporter_register(reporter, "1000", n,
@@ -128,9 +133,9 @@ main(int argc, gchar **argv)
   bench_reporter_run(reporter);
   g_object_unref(reporter);
 
-  bench_utils_remove_path_recursive_force(data.base_dir);
+  grn_ctx_fin(&ctx);
 
-  g_free(data.context);
+  bench_utils_remove_path_recursive_force(data.base_dir);
 
   bench_quit();
   grn_fin();
-------------- next part --------------
HTML����������������������������...
Download 



More information about the Groonga-commit mailing list
Back to archive index