45 get_memory_usage(
void)
47 GRegex *vm_rss_pattern;
49 GMatchInfo *match_info;
53 g_file_get_contents(
"/proc/self/status", &status, NULL, NULL);
55 vm_rss_pattern = g_regex_new(
"VmRSS:\\s*(\\d*)\\s+kB", 0, 0, NULL);
56 if (!g_regex_match(vm_rss_pattern, status, 0, &match_info)) {
57 g_print(
"not match...: %s\n", status);
60 vm_rss_string = g_match_info_fetch(match_info, 1);
61 vm_rss = atoi(vm_rss_string);
62 g_free(vm_rss_string);
63 g_match_info_free(match_info);
64 g_regex_unref(vm_rss_pattern);
71 bench_with_mruby(gpointer user_data)
75 g_setenv(
"GRN_MRUBY_ENABLED",
"yes",
TRUE);
81 bench_without_mruby(gpointer user_data)
85 g_setenv(
"GRN_MRUBY_ENABLED",
"no",
TRUE);
91 bench_setup(gpointer user_data)
99 bench_teardown(gpointer user_data)
113 current_dir = g_get_current_dir();
114 tmp_dir = g_build_filename(current_dir,
"tmp", NULL);
124 gchar *database_path;
127 tmp_dir = get_tmp_dir();
128 database_path = g_build_filename(tmp_dir,
"ctx-create",
"db", NULL);
131 g_free(database_path);
155 data.
database = setup_database(&context);
159 #define REGISTER(label, bench_function) \
160 bench_reporter_register(reporter, label, n, \
165 REGISTER(
"with mruby", bench_with_mruby);
166 REGISTER(
"without mruby", bench_without_mruby);
170 g_object_unref(reporter);
172 teardown_database(&context, data.
database);