aboutsummaryrefslogtreecommitdiff
path: root/hardinfo2
diff options
context:
space:
mode:
authorLeandro A. F. Pereira <leandro@hardinfo.org>2007-01-20 01:33:01 +0000
committerLeandro A. F. Pereira <leandro@hardinfo.org>2007-01-20 01:33:01 +0000
commitc38d62dba479a8a69703d0fb010ed34ac2ebc685 (patch)
tree2b874f1b890be1d73bd09bd332b8607c001703ac /hardinfo2
parentfa0fa92bd3f1f0bad206b3a835b562839d9d895c (diff)
Better benchmark result handling when using synchronized data.
Diffstat (limited to 'hardinfo2')
-rw-r--r--hardinfo2/arch/common/blowfish.h9
-rw-r--r--hardinfo2/arch/common/fib.h6
-rw-r--r--hardinfo2/arch/common/md5.h9
-rw-r--r--hardinfo2/arch/common/raytrace.h6
-rw-r--r--hardinfo2/arch/common/sha1.h9
-rw-r--r--hardinfo2/arch/common/zlib.h16
-rw-r--r--hardinfo2/benchmark.c82
7 files changed, 46 insertions, 91 deletions
diff --git a/hardinfo2/arch/common/blowfish.h b/hardinfo2/arch/common/blowfish.h
index 07160690..ceec7a96 100644
--- a/hardinfo2/arch/common/blowfish.h
+++ b/hardinfo2/arch/common/blowfish.h
@@ -18,7 +18,7 @@
#include <blowfish.h>
-gchar *
+static void
benchmark_fish(void)
{
BLOWFISH_CTX ctx;
@@ -39,8 +39,7 @@ benchmark_fish(void)
bdata_path = g_build_filename(params.path_data, "benchmark.data", NULL);
if (!g_file_get_contents(bdata_path, &tmpsrc, NULL, NULL)) {
g_free(bdata_path);
- return g_strdup("[Error]\n"
- PREFIX "benchmark.data not found=\n");
+ return;
}
shell_view_set_enabled(FALSE);
@@ -63,8 +62,4 @@ benchmark_fish(void)
g_free(bdata_path);
bench_results[BENCHMARK_BLOWFISH] = elapsed;
-
- gchar *retval = g_strdup_printf("[Results <i>(in seconds; lower is better)</i>]\n"
- "<i>This Machine</i>=%.2f\n", elapsed);
- return benchmark_include_results(retval, "CPU Blowfish");
}
diff --git a/hardinfo2/arch/common/fib.h b/hardinfo2/arch/common/fib.h
index e676e38e..645002fa 100644
--- a/hardinfo2/arch/common/fib.h
+++ b/hardinfo2/arch/common/fib.h
@@ -26,7 +26,7 @@ fib(gulong n)
return fib(n - 1) + fib(n - 2);
}
-static gchar *
+static void
benchmark_fib(void)
{
GTimer *timer = g_timer_new();
@@ -45,8 +45,4 @@ benchmark_fib(void)
g_timer_destroy(timer);
bench_results[BENCHMARK_FIB] = elapsed;
-
- gchar *retval = g_strdup_printf("[Results]\n"
- "<i>This Machine</i>=%.3f s\n", elapsed);
- return benchmark_include_results(retval, "CPU Fibonacci");
}
diff --git a/hardinfo2/arch/common/md5.h b/hardinfo2/arch/common/md5.h
index 601eef94..95d683bd 100644
--- a/hardinfo2/arch/common/md5.h
+++ b/hardinfo2/arch/common/md5.h
@@ -18,7 +18,7 @@
#include <md5.h>
-gchar *
+static void
benchmark_md5(void)
{
struct MD5Context ctx;
@@ -36,8 +36,7 @@ benchmark_md5(void)
bdata_path = g_build_filename(params.path_data, "benchmark.data", NULL);
if (!g_file_get_contents(bdata_path, &tmpsrc, NULL, NULL)) {
g_free(bdata_path);
- return g_strdup("[Error]\n"
- PREFIX "benchmark.data not found=\n");
+ return;
}
shell_view_set_enabled(FALSE);
@@ -60,9 +59,5 @@ benchmark_md5(void)
g_free(bdata_path);
bench_results[BENCHMARK_MD5] = 312.0 / elapsed;
-
- gchar *retval = g_strdup_printf("[Results]\n"
- "<i>This Machine</i>=%.2f MiB/s\n", 312.0 / elapsed);
- return benchmark_include_results_reverse(retval, "CPU MD5");
}
diff --git a/hardinfo2/arch/common/raytrace.h b/hardinfo2/arch/common/raytrace.h
index d574779d..af9f2afa 100644
--- a/hardinfo2/arch/common/raytrace.h
+++ b/hardinfo2/arch/common/raytrace.h
@@ -18,7 +18,7 @@
void fbench(); /* fbench.c */
-static gchar *
+static void
benchmark_raytrace(void)
{
int i;
@@ -42,9 +42,5 @@ benchmark_raytrace(void)
g_timer_destroy(timer);
bench_results[BENCHMARK_RAYTRACE] = elapsed;
-
- gchar *retval = g_strdup_printf("[Results <i>(in seconds; lower is better)</i>]\n"
- "<i>This Machine</i>=%.2f\n", elapsed);
- return benchmark_include_results(retval, "CPU Raytracing");
}
diff --git a/hardinfo2/arch/common/sha1.h b/hardinfo2/arch/common/sha1.h
index 79cfebcf..3b7f7652 100644
--- a/hardinfo2/arch/common/sha1.h
+++ b/hardinfo2/arch/common/sha1.h
@@ -17,7 +17,7 @@
*/
#include <sha1.h>
-gchar *
+static void
benchmark_sha1(void)
{
SHA1_CTX ctx;
@@ -35,8 +35,7 @@ benchmark_sha1(void)
bdata_path = g_build_filename(params.path_data, "benchmark.data", NULL);
if (!g_file_get_contents(bdata_path, &tmpsrc, NULL, NULL)) {
g_free(bdata_path);
- return g_strdup("[Error]\n"
- PREFIX "benchmark.data not found=\n");
+ return;
}
shell_view_set_enabled(FALSE);
@@ -59,9 +58,5 @@ benchmark_sha1(void)
g_free(bdata_path);
bench_results[BENCHMARK_SHA1] = 312.0 / elapsed;
-
- gchar *retval = g_strdup_printf("[Results]\n"
- "<i>This Machine</i>=%.2f MiB/s\n", 312.0 / elapsed);
- return benchmark_include_results_reverse(retval, "CPU SHA1");
}
diff --git a/hardinfo2/arch/common/zlib.h b/hardinfo2/arch/common/zlib.h
index 3a091ac0..96d20944 100644
--- a/hardinfo2/arch/common/zlib.h
+++ b/hardinfo2/arch/common/zlib.h
@@ -16,7 +16,7 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
-static gchar *
+static void
benchmark_zlib(void)
{
GModule *libz;
@@ -30,8 +30,7 @@ benchmark_zlib(void)
libz = g_module_open("/usr/lib/libz.so", G_MODULE_BIND_LAZY);
if (!libz) {
g_warning("Cannot load ZLib: %s", g_module_error());
- return g_strdup("[Error]\n"
- "ZLib not found=");
+ return;
}
}
@@ -39,8 +38,7 @@ benchmark_zlib(void)
|| !g_module_symbol(libz, "compressBound", (gpointer) & compressBound)) {
g_module_close(libz);
- return g_strdup("[Error]\n"
- "Invalid Z-Lib found=");
+ return;
}
}
@@ -56,8 +54,7 @@ benchmark_zlib(void)
bdata_path = g_build_filename(params.path_data, "benchmark.data", NULL);
if (!g_file_get_contents(bdata_path, &tmpsrc, NULL, NULL)) {
g_free(bdata_path);
- return g_strdup("[Error]\n"
- PREFIX "benchmark.data not found=\n");
+ return;
}
shell_status_update("Compressing 64MB with default options...");
@@ -82,9 +79,4 @@ benchmark_zlib(void)
g_free(bdata_path);
bench_results[BENCHMARK_ZLIB] = 65536.0 / elapsed;
-
- gchar *retval = g_strdup_printf("[Results]\n"
- "<i>This Machine</i>=%.3f KiB/s\n",
- 65536.0 / elapsed);
- return benchmark_include_results_reverse(retval, "CPU ZLib");
}
diff --git a/hardinfo2/benchmark.c b/hardinfo2/benchmark.c
index a4501e43..7f5025de 100644
--- a/hardinfo2/benchmark.c
+++ b/hardinfo2/benchmark.c
@@ -56,33 +56,24 @@ static ModuleEntry entries[] = {
{ NULL }
};
-static gchar *__benchmark_include_results(gchar * results,
+static gchar *__benchmark_include_results(gdouble result,
const gchar * benchmark,
ShellOrderType order_type)
{
GKeyFile *conf;
gchar **machines;
- gchar *path;
+ gchar *path, *results = "";
int i;
conf = g_key_file_new();
- path = g_build_filename(params.path_data, "benchmark.conf", NULL);
- g_key_file_load_from_file(conf, path, 0, NULL);
-
- machines = g_key_file_get_keys(conf, benchmark, NULL, NULL);
- for (i = 0; machines && machines[i]; i++) {
- gchar *value = g_key_file_get_value(conf, benchmark, machines[i], NULL);
- results = g_strconcat(results, machines[i], "=", value, "\n", NULL);
- g_free(value);
+ path = g_build_filename(g_get_home_dir(), ".hardinfo", "benchmark.conf", NULL);
+ if (!g_file_test(path, G_FILE_TEST_EXISTS)) {
+ DEBUG("local benchmark.conf not found, trying system-wide");
+ g_free(path);
+ path = g_build_filename(params.path_data, "benchmark.conf", NULL);
}
- g_strfreev(machines);
- g_free(path);
- g_key_file_free(conf);
-
- conf = g_key_file_new();
- path = g_build_filename(g_get_home_dir(), ".hardinfo", "benchmark.conf", NULL);
g_key_file_load_from_file(conf, path, 0, NULL);
machines = g_key_file_get_keys(conf, benchmark, NULL, NULL);
@@ -96,33 +87,32 @@ static gchar *__benchmark_include_results(gchar * results,
g_free(path);
g_key_file_free(conf);
+ DEBUG("results = %s", results);
+
return g_strdup_printf("[$ShellParam$]\n"
"Zebra=1\n"
"OrderType=%d\n"
- "ViewType=3\n%s", order_type, results);
+ "ViewType=3\n"
+ "[%s]\n"
+ "<i>This Machine</i>=%.3f\n"
+ "%s", order_type, benchmark, result, results);
}
-static gchar *benchmark_include_results_reverse(gchar * results,
+static gchar *benchmark_include_results_reverse(gdouble result,
const gchar * benchmark)
{
- return __benchmark_include_results(results, benchmark,
+ return __benchmark_include_results(result, benchmark,
SHELL_ORDER_DESCENDING);
}
-static gchar *benchmark_include_results(gchar * results,
+static gchar *benchmark_include_results(gdouble result,
const gchar * benchmark)
{
- return __benchmark_include_results(results, benchmark,
+ return __benchmark_include_results(result, benchmark,
SHELL_ORDER_ASCENDING);
}
static gdouble bench_results[BENCHMARK_N_ENTRIES];
-static gchar *bench_zlib = NULL,
- *bench_fib = NULL,
- *bench_md5 = NULL,
- *bench_sha1 = NULL,
- *bench_fish = NULL,
- *bench_ray = NULL;
#include <arch/common/fib.h>
#include <arch/common/zlib.h>
@@ -133,79 +123,73 @@ static gchar *bench_zlib = NULL,
gchar *callback_zlib()
{
- return g_strdup(bench_zlib);
+ return benchmark_include_results_reverse(bench_results[BENCHMARK_ZLIB], "CPU ZLib");
}
gchar *callback_raytr()
{
- return g_strdup(bench_ray);
+ return benchmark_include_results(bench_results[BENCHMARK_RAYTRACE], "FPU Raytracing");
}
gchar *callback_bfsh()
{
- return g_strdup(bench_fish);
+ return benchmark_include_results(bench_results[BENCHMARK_BLOWFISH], "CPU Blowfish");
}
gchar *callback_md5()
{
- return g_strdup(bench_md5);
+ return benchmark_include_results_reverse(bench_results[BENCHMARK_MD5], "CPU MD5");
}
gchar *callback_fib()
{
- return g_strdup(bench_fib);
+ return benchmark_include_results(bench_results[BENCHMARK_FIB], "CPU Fibonacci");
}
gchar *callback_sha1()
{
- return g_strdup(bench_sha1);
+ return benchmark_include_results_reverse(bench_results[BENCHMARK_SHA1], "CPU SHA1");
}
void scan_zlib(gboolean reload)
{
SCAN_START();
- g_free(bench_zlib);
- bench_zlib = benchmark_zlib();
+ benchmark_zlib();
SCAN_END();
}
void scan_raytr(gboolean reload)
{
SCAN_START();
- g_free(bench_ray);
- bench_ray = benchmark_raytrace();
+ benchmark_raytrace();
SCAN_END();
}
void scan_bfsh(gboolean reload)
{
SCAN_START();
- g_free(bench_fish);
- bench_fish = benchmark_fish();
+ benchmark_fish();
SCAN_END();
}
void scan_md5(gboolean reload)
{
SCAN_START();
- g_free(bench_md5);
- bench_md5 = benchmark_md5();
+ benchmark_md5();
SCAN_END();
}
void scan_fib(gboolean reload)
{
SCAN_START();
- g_free(bench_fib);
- bench_fib = benchmark_fib();
+ benchmark_fib();
SCAN_END();
}
void scan_sha1(gboolean reload)
{
SCAN_START();
- g_free(bench_sha1);
- bench_sha1 = benchmark_sha1();
+ benchmark_sha1();
SCAN_END();
}
@@ -213,9 +197,11 @@ const gchar *hi_note_func(gint entry)
{
switch (entry) {
case BENCHMARK_ZLIB:
+ return "Results in KiB/second. Higher is better.";
+
case BENCHMARK_MD5:
case BENCHMARK_SHA1:
- return "Results in bytes/second. Higher is better.";
+ return "Results in MiB/second. Higher is better.";
case BENCHMARK_RAYTRACE:
case BENCHMARK_BLOWFISH:
@@ -294,13 +280,13 @@ hi_module_init(void)
{
static SyncEntry se[] = {
{
- .fancy_name = "Send Benchmark results",
+ .fancy_name = "Send Benchmark Results",
.name = "SendBenchmarkResults",
.save_to = NULL,
.get_data = get_benchmark_results
},
{
- .fancy_name = "Receive Benchmark results",
+ .fancy_name = "Receive Benchmark Results",
.name = "RecvBenchmarkResults",
.save_to = "benchmark.conf",
.get_data = NULL