--- libaitcrc/example/test_hash.c 2011/04/28 20:28:20 1.2 +++ libaitcrc/example/test_hash.c 2012/08/29 09:00:15 1.2.6.3 @@ -2,26 +2,29 @@ #include #include #include +#include +#include +#include #include "aitcrc.h" int main() { int i, f; + u_int n; char szLine[256], szAvalanche[][2] = { { 0, 0 }, { 1, 0 }, { 2, 0 }, { 3, 0 }, { 4, 0 }, { 5, 0 }, { 6, 0 }, { 7, 0 } }; struct timeval before, after; - /* f = open("/dev/urandom", O_RDONLY); if (f == -1) return 1; // hash_varchar gettimeofday(&before, NULL); - for (i = 0; i < 1000000; i++) { + for (i = 0; i < 100000; i++) { memset(szLine, 0, 256); read(f, szLine, 255); - hash_varchar(szLine, 256); + hash_varchar(szLine, 256, 1); // printf("%u\n", hash_varchar(szLine, 256)); } gettimeofday(&after, NULL); @@ -29,7 +32,7 @@ int main() (after.tv_sec - before.tv_sec) + (after.tv_usec - before.tv_usec) / 1.e6); // hash_bernstein gettimeofday(&before, NULL); - for (i = 0; i < 1000000; i++) { + for (i = 0; i < 100000; i++) { memset(szLine, 0, 256); read(f, szLine, 255); hash_bernstein(szLine, 256, 0); @@ -40,7 +43,7 @@ int main() (after.tv_sec - before.tv_sec) + (after.tv_usec - before.tv_usec) / 1.e6); // hash_bernstein DJBX33A gettimeofday(&before, NULL); - for (i = 0; i < 1000000; i++) { + for (i = 0; i < 100000; i++) { memset(szLine, 0, 256); read(f, szLine, 255); hash_bernstein(szLine, 256, 1); @@ -51,7 +54,7 @@ int main() (after.tv_sec - before.tv_sec) + (after.tv_usec - before.tv_usec) / 1.e6); // hash_FNV-1a gettimeofday(&before, NULL); - for (i = 0; i < 1000000; i++) { + for (i = 0; i < 100000; i++) { memset(szLine, 0, 256); read(f, szLine, 255); hash_fnv1(szLine, 256, 0); @@ -62,7 +65,7 @@ int main() (after.tv_sec - before.tv_sec) + (after.tv_usec - before.tv_usec) / 1.e6); // hash_FNV-1 gettimeofday(&before, NULL); - for (i = 0; i < 1000000; i++) { + for (i = 0; i < 100000; i++) { memset(szLine, 0, 256); read(f, szLine, 255); hash_fnv1(szLine, 256, 1); @@ -73,7 +76,7 @@ int main() (after.tv_sec - before.tv_sec) + (after.tv_usec - before.tv_usec) / 1.e6); // hash_jenkins gettimeofday(&before, NULL); - for (i = 0; i < 1000000; i++) { + for (i = 0; i < 100000; i++) { memset(szLine, 0, 256); read(f, szLine, 255); hash_jenkins(szLine, 256); @@ -83,9 +86,21 @@ int main() printf("hash_jenkins:: elapsed time %f seconds\n", (after.tv_sec - before.tv_sec) + (after.tv_usec - before.tv_usec) / 1.e6); + // hash_jenkins32 + gettimeofday(&before, NULL); + for (i = 0; i < 100000; i++) { + memset(szLine, 0, 256); + read(f, szLine, 255); + /*n =*/ hash_jenkins32((u_int*) szLine, 256 / 4, 0); +// printf("%u\n", n); + } + gettimeofday(&after, NULL); + printf("hash_jenkins32:: elapsed time %f seconds\n", + (after.tv_sec - before.tv_sec) + (after.tv_usec - before.tv_usec) / 1.e6); + close(f); printf("\n"); - */ + printf("Test avalanche 0 .. 7::\n"); printf(" hash_varchar:"); @@ -135,6 +150,16 @@ int main() memset(szLine, 0, 256); memcpy(szLine, &szAvalanche[i][0], 1); printf(" %d=>%u", i, hash_jenkins(szLine, 1)); + } + printf("\n"); + printf(" hash_jenkins32:"); + for (i = 0; i < 8; i++) { + n = szAvalanche[i][0]; + printf(" %d=>%u/", i, hash_jenkins32(&n, 1, 0)); + + memset(szLine, 0, 256); + memcpy(szLine, &szAvalanche[i][0], 1); + printf("%d=>%u ", i, hash_jenkins32((u_int*) szLine, 1, 0)); } printf("\n"); printf(" hash_reddragon:");