From db8367fa234d20d6e8e07901398fd45e23058d7b Mon Sep 17 00:00:00 2001 From: root Date: Sun, 9 Jun 2002 22:41:34 +0000 Subject: *** empty log message *** --- bench.c | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 bench.c (limited to 'bench.c') diff --git a/bench.c b/bench.c new file mode 100644 index 0000000..2700c46 --- /dev/null +++ b/bench.c @@ -0,0 +1,63 @@ +#include +#include +#include + +#include "lzf.h" + +typedef unsigned long tval; +typedef unsigned long long stamp64; + +extern inline tval stamp(void) +{ + tval tsc; + asm volatile("rdtsc" : "=a" (tsc) : : "edx"); + return tsc; +} + +extern inline tval measure(tval t) +{ + tval tsc; + asm volatile("rdtsc" : "=a" (tsc) : : "edx"); + if (tsc>t) + return tsc-t; + else + return t-tsc; +} + +#define DSIZE 1000000 + +unsigned char data[DSIZE], data2[DSIZE*2], data3[DSIZE*2]; + +int main(void) +{ + tval s; + tval si[1000]; + int i, l, j; + int min = 1<<30; + + FILE *f = fopen ("data", "r"); + fread (data, DSIZE, 1, f); + fclose (f); + + for(;;) { + s=stamp(); + l = lzf_compress (data, DSIZE, data2, DSIZE*2); + j = lzf_decompress (data2, l, data3, DSIZE*2); + si[0]=measure(s); + + printf ("\r%10d (%d) ", si[0], l); + if (si[0] < min && si[0] > 0) + { + printf ("\n"); + min = si[0]; + } + + fflush (stdout); + + assert (memcmp (data, data3, DSIZE) == 0); + } + return 0; +} + + + -- cgit v1.2.3