diff options
Diffstat (limited to 'hardinfo2/arch')
| -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;  } | 
