diff options
author | Leandro <leandro@hardinfo.org> | 2008-11-03 12:16:12 -0200 |
---|---|---|
committer | Leandro <leandro@hardinfo.org> | 2008-11-03 12:16:12 -0200 |
commit | 8c7cf953405116a797bb18eef603056c0f63c931 (patch) | |
tree | 5e4850585d6b46b97fecc76a66bfb34bfbb0bbee /hardinfo2 | |
parent | ebe327990f4a0cdb62b0edd9a48e2c06c1524052 (diff) |
Implement parallel blowfish benchmark
Diffstat (limited to 'hardinfo2')
-rw-r--r-- | hardinfo2/arch/common/blowfish.h | 52 |
1 files changed, 25 insertions, 27 deletions
diff --git a/hardinfo2/arch/common/blowfish.h b/hardinfo2/arch/common/blowfish.h index 69b35377..5fea2e22 100644 --- a/hardinfo2/arch/common/blowfish.h +++ b/hardinfo2/arch/common/blowfish.h @@ -18,48 +18,46 @@ #include <blowfish.h> -static void -benchmark_fish(void) +static gpointer +parallel_blowfish(unsigned int start, unsigned int end, void *data, GTimer *timer) { BLOWFISH_CTX ctx; - GTimer *timer = g_timer_new(); - gdouble elapsed = 0; - gchar src[65536], *tmpsrc; - glong srclen = 65536; + unsigned int i; unsigned long L, R; - int i; - - tmpsrc = src; L = 0xBEBACAFE; R = 0xDEADBEEF; + for (i = start; i <= end; i++) { + Blowfish_Init(&ctx, (unsigned char*)data, 65536); + Blowfish_Encrypt(&ctx, &L, &R); + Blowfish_Decrypt(&ctx, &L, &R); + } + + return NULL; +} + +static void +benchmark_fish(void) +{ + gdouble elapsed = 0; + gchar *tmpsrc; + gchar *bdata_path; - + 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; - } - + } + shell_view_set_enabled(FALSE); shell_status_update("Performing Blowfish benchmark..."); - - for (i = 0; i <= 50000; i++) { - g_timer_start(timer); - Blowfish_Init(&ctx, (unsigned char*)tmpsrc, srclen); - Blowfish_Encrypt(&ctx, &L, &R); - Blowfish_Decrypt(&ctx, &L, &R); - - g_timer_stop(timer); - elapsed += g_timer_elapsed(timer, NULL); - - shell_status_set_percentage(i/500); - } - - g_timer_destroy(timer); + elapsed = benchmark_parallel_for(0, 50000, parallel_blowfish, tmpsrc); + g_free(bdata_path); - + g_free(tmpsrc); + bench_results[BENCHMARK_BLOWFISH] = elapsed; } |