version 1.1.2.1, 2010/06/13 16:32:09
|
version 1.2.6.3, 2012/08/29 09:00:15
|
Line 2
|
Line 2
|
#include <string.h> |
#include <string.h> |
#include <fcntl.h> |
#include <fcntl.h> |
#include <unistd.h> |
#include <unistd.h> |
#include "aithash.h" | #include <sys/types.h> |
| #include <sys/endian.h> |
| #include <sys/time.h> |
| #include "aitcrc.h" |
|
|
|
|
int main() |
int main() |
{ |
{ |
int i, f; |
int i, f; |
|
u_int n; |
char szLine[256], szAvalanche[][2] = { { 0, 0 }, { 1, 0 }, { 2, 0 }, { 3, 0 }, |
char szLine[256], szAvalanche[][2] = { { 0, 0 }, { 1, 0 }, { 2, 0 }, { 3, 0 }, |
{ 4, 0 }, { 5, 0 }, { 6, 0 }, { 7, 0 } }; |
{ 4, 0 }, { 5, 0 }, { 6, 0 }, { 7, 0 } }; |
struct timeval before, after; |
struct timeval before, after; |
|
|
/* |
|
f = open("/dev/urandom", O_RDONLY); |
f = open("/dev/urandom", O_RDONLY); |
if (f == -1) |
if (f == -1) |
return 1; |
return 1; |
// hash_varchar |
// hash_varchar |
gettimeofday(&before, NULL); |
gettimeofday(&before, NULL); |
for (i = 0; i < 1000000; i++) { | for (i = 0; i < 100000; i++) { |
memset(szLine, 0, 256); |
memset(szLine, 0, 256); |
read(f, szLine, 255); |
read(f, szLine, 255); |
hash_varchar(szLine, 256); | hash_varchar(szLine, 256, 1); |
// printf("%u\n", hash_varchar(szLine, 256)); |
// printf("%u\n", hash_varchar(szLine, 256)); |
} |
} |
gettimeofday(&after, NULL); |
gettimeofday(&after, NULL); |
Line 29 int main()
|
Line 32 int main()
|
(after.tv_sec - before.tv_sec) + (after.tv_usec - before.tv_usec) / 1.e6); |
(after.tv_sec - before.tv_sec) + (after.tv_usec - before.tv_usec) / 1.e6); |
// hash_bernstein |
// hash_bernstein |
gettimeofday(&before, NULL); |
gettimeofday(&before, NULL); |
for (i = 0; i < 1000000; i++) { | for (i = 0; i < 100000; i++) { |
memset(szLine, 0, 256); |
memset(szLine, 0, 256); |
read(f, szLine, 255); |
read(f, szLine, 255); |
hash_bernstein(szLine, 256, 0); |
hash_bernstein(szLine, 256, 0); |
Line 40 int main()
|
Line 43 int main()
|
(after.tv_sec - before.tv_sec) + (after.tv_usec - before.tv_usec) / 1.e6); |
(after.tv_sec - before.tv_sec) + (after.tv_usec - before.tv_usec) / 1.e6); |
// hash_bernstein DJBX33A |
// hash_bernstein DJBX33A |
gettimeofday(&before, NULL); |
gettimeofday(&before, NULL); |
for (i = 0; i < 1000000; i++) { | for (i = 0; i < 100000; i++) { |
memset(szLine, 0, 256); |
memset(szLine, 0, 256); |
read(f, szLine, 255); |
read(f, szLine, 255); |
hash_bernstein(szLine, 256, 1); |
hash_bernstein(szLine, 256, 1); |
Line 51 int main()
|
Line 54 int main()
|
(after.tv_sec - before.tv_sec) + (after.tv_usec - before.tv_usec) / 1.e6); |
(after.tv_sec - before.tv_sec) + (after.tv_usec - before.tv_usec) / 1.e6); |
// hash_FNV-1a |
// hash_FNV-1a |
gettimeofday(&before, NULL); |
gettimeofday(&before, NULL); |
for (i = 0; i < 1000000; i++) { | for (i = 0; i < 100000; i++) { |
memset(szLine, 0, 256); |
memset(szLine, 0, 256); |
read(f, szLine, 255); |
read(f, szLine, 255); |
hash_fnv1(szLine, 256, 0); |
hash_fnv1(szLine, 256, 0); |
Line 62 int main()
|
Line 65 int main()
|
(after.tv_sec - before.tv_sec) + (after.tv_usec - before.tv_usec) / 1.e6); |
(after.tv_sec - before.tv_sec) + (after.tv_usec - before.tv_usec) / 1.e6); |
// hash_FNV-1 |
// hash_FNV-1 |
gettimeofday(&before, NULL); |
gettimeofday(&before, NULL); |
for (i = 0; i < 1000000; i++) { | for (i = 0; i < 100000; i++) { |
memset(szLine, 0, 256); |
memset(szLine, 0, 256); |
read(f, szLine, 255); |
read(f, szLine, 255); |
hash_fnv1(szLine, 256, 1); |
hash_fnv1(szLine, 256, 1); |
Line 73 int main()
|
Line 76 int main()
|
(after.tv_sec - before.tv_sec) + (after.tv_usec - before.tv_usec) / 1.e6); |
(after.tv_sec - before.tv_sec) + (after.tv_usec - before.tv_usec) / 1.e6); |
// hash_jenkins |
// hash_jenkins |
gettimeofday(&before, NULL); |
gettimeofday(&before, NULL); |
for (i = 0; i < 1000000; i++) { | for (i = 0; i < 100000; i++) { |
memset(szLine, 0, 256); |
memset(szLine, 0, 256); |
read(f, szLine, 255); |
read(f, szLine, 255); |
hash_jenkins(szLine, 256); |
hash_jenkins(szLine, 256); |
Line 83 int main()
|
Line 86 int main()
|
printf("hash_jenkins:: elapsed time %f seconds\n", |
printf("hash_jenkins:: elapsed time %f seconds\n", |
(after.tv_sec - before.tv_sec) + (after.tv_usec - before.tv_usec) / 1.e6); |
(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); |
close(f); |
printf("\n"); |
printf("\n"); |
*/ | |
printf("Test avalanche 0 .. 7::\n"); |
printf("Test avalanche 0 .. 7::\n"); |
|
|
printf(" hash_varchar:"); |
printf(" hash_varchar:"); |
for (i = 0; i < 8; i++) { |
for (i = 0; i < 8; i++) { |
memset(szLine, 0, 256); |
memset(szLine, 0, 256); |
memcpy(szLine, &szAvalanche[i][0], 1); |
memcpy(szLine, &szAvalanche[i][0], 1); |
printf(" %d=>%u", i, hash_varchar(szLine, 1)); | printf(" %d=>%u", i, hash_varchar(szLine, 1, 1)); |
} |
} |
printf("\n"); |
printf("\n"); |
printf(" hash_fnv1:"); |
printf(" hash_fnv1:"); |
Line 137 int main()
|
Line 152 int main()
|
printf(" %d=>%u", i, hash_jenkins(szLine, 1)); |
printf(" %d=>%u", i, hash_jenkins(szLine, 1)); |
} |
} |
printf("\n"); |
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:"); |
|
for (i = 0; i < 8; i++) { |
|
memset(szLine, 0, 256); |
|
memcpy(szLine, &szAvalanche[i][0], 1); |
|
printf(" %d=>%u", i, hash_reddragon(szLine, 1)); |
|
} |
|
printf("\n"); |
|
printf(" aaa>%u\n", hash_reddragon("aaa", 3)); |
|
printf(" aab>%u\n", hash_reddragon("aab", 3)); |
return 0; |
return 0; |
} |
} |