X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Fsec%2Fbenchmarks.c;h=727697d3fba1ec9bb6afc09f5abd93842ee1fddf;hb=2c11694a46d846418792408b130cd40658cb04fa;hp=f5fbd79b28a06aa90a8a0ece5dd1094334aa95e0;hpb=bef610f14930b50af370a0a582f904204285d084;p=bertos.git diff --git a/bertos/sec/benchmarks.c b/bertos/sec/benchmarks.c index f5fbd79b..727697d3 100644 --- a/bertos/sec/benchmarks.c +++ b/bertos/sec/benchmarks.c @@ -3,11 +3,11 @@ #include #include +static uint8_t buf[512]; + void hash_benchmark(Hash *h, const char *hname, int numk) { - static uint8_t buf[512]; memset(buf, 0x12, sizeof(buf)); - ticks_t t = timer_clock(); for (int j=0;j<64;++j) { @@ -22,3 +22,27 @@ void hash_benchmark(Hash *h, const char *hname, int numk) utime_t usec = ticks_to_us(t) / 64; kprintf("%s @ %ldMhz: %s of %dKiB of data: %lu.%lu ms\n", CPU_CORE_NAME, CPU_FREQ/1000000, hname, numk, (usec/1000), (usec % 1000)); } + +void prng_benchmark(PRNG *prng, const char *hname, int numbytes) +{ + memset(buf, 0x12, sizeof(buf)); + + ASSERT(sizeof(buf) >= prng_seed_len(prng)); + prng_reseed(prng, buf); + + ticks_t t = timer_clock(); + + for (int j=0;j<2048;++j) { + for (int i=0; i<(numbytes+511)/512-1; ++i) + prng_generate(prng, buf, 512); + if (numbytes % 512) + prng_generate(prng, buf, numbytes%512); + } + + t = timer_clock() - t; + + utime_t usec = ticks_to_us(t) / 2048; + kprintf("%s @ %ldMhz: %s generation of %d random bytes: %lu.%lu ms\n", CPU_CORE_NAME, CPU_FREQ/1000000, hname, numbytes, (usec/1000), (usec % 1000)); + kprintf("Sample of random data:\n"); + kdump(buf, MIN(numbytes, 64)); +}