version 1.1, 2010/06/13 16:32:09
|
version 1.2, 2011/04/28 20:28:20
|
Line 0
|
Line 1
|
|
#include <stdio.h> |
|
#include <string.h> |
|
#include <fcntl.h> |
|
#include <unistd.h> |
|
#include "aitcrc.h" |
|
|
|
|
|
int main() |
|
{ |
|
int i, f; |
|
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++) { |
|
memset(szLine, 0, 256); |
|
read(f, szLine, 255); |
|
hash_varchar(szLine, 256); |
|
// printf("%u\n", hash_varchar(szLine, 256)); |
|
} |
|
gettimeofday(&after, NULL); |
|
printf("hash_varchar:: elapsed time %f seconds\n", |
|
(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++) { |
|
memset(szLine, 0, 256); |
|
read(f, szLine, 255); |
|
hash_bernstein(szLine, 256, 0); |
|
// printf("%u\n", hash_varchar(szLine, 256)); |
|
} |
|
gettimeofday(&after, NULL); |
|
printf("hash_bernstein:: elapsed time %f seconds\n", |
|
(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++) { |
|
memset(szLine, 0, 256); |
|
read(f, szLine, 255); |
|
hash_bernstein(szLine, 256, 1); |
|
// printf("%u\n", hash_varchar(szLine, 256)); |
|
} |
|
gettimeofday(&after, NULL); |
|
printf("hash_bernstein DJBX33A:: elapsed time %f seconds\n", |
|
(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++) { |
|
memset(szLine, 0, 256); |
|
read(f, szLine, 255); |
|
hash_fnv1(szLine, 256, 0); |
|
// printf("%u\n", hash_varchar(szLine, 256)); |
|
} |
|
gettimeofday(&after, NULL); |
|
printf("hash_fnv1:: elapsed time %f seconds\n", |
|
(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++) { |
|
memset(szLine, 0, 256); |
|
read(f, szLine, 255); |
|
hash_fnv1(szLine, 256, 1); |
|
// printf("%u\n", hash_varchar(szLine, 256)); |
|
} |
|
gettimeofday(&after, NULL); |
|
printf("hash_fnv1 A:: elapsed time %f seconds\n", |
|
(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++) { |
|
memset(szLine, 0, 256); |
|
read(f, szLine, 255); |
|
hash_jenkins(szLine, 256); |
|
// printf("%u\n", hash_varchar(szLine, 256)); |
|
} |
|
gettimeofday(&after, NULL); |
|
printf("hash_jenkins:: 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:"); |
|
for (i = 0; i < 8; i++) { |
|
memset(szLine, 0, 256); |
|
memcpy(szLine, &szAvalanche[i][0], 1); |
|
printf(" %d=>%u", i, hash_varchar(szLine, 1, 1)); |
|
} |
|
printf("\n"); |
|
printf(" hash_fnv1:"); |
|
for (i = 0; i < 8; i++) { |
|
memset(szLine, 0, 256); |
|
memcpy(szLine, &szAvalanche[i][0], 1); |
|
printf(" %d=>%u", i, hash_fnv1(szLine, 1, 0)); |
|
} |
|
printf("\n"); |
|
printf(" hash_fnv1 A:"); |
|
for (i = 0; i < 8; i++) { |
|
memset(szLine, 0, 256); |
|
memcpy(szLine, &szAvalanche[i][0], 1); |
|
printf(" %d=>%u", i, hash_fnv1(szLine, 1, 1)); |
|
} |
|
printf("\n"); |
|
printf(" hash_fnv1 A (define):"); |
|
for (i = 0; i < 8; i++) { |
|
memset(szLine, 0, 256); |
|
memcpy(szLine, &szAvalanche[i][0], 1); |
|
printf(" %d=>%u", i, hash_fnv(szLine, 1)); |
|
} |
|
printf("\n"); |
|
printf(" hash_bernstein:"); |
|
for (i = 0; i < 8; i++) { |
|
memset(szLine, 0, 256); |
|
memcpy(szLine, &szAvalanche[i][0], 1); |
|
printf(" %d=>%u", i, hash_bernstein(szLine, 1, 0)); |
|
} |
|
printf("\n"); |
|
printf(" hash_bernstein DJBX33A:"); |
|
for (i = 0; i < 8; i++) { |
|
memset(szLine, 0, 256); |
|
memcpy(szLine, &szAvalanche[i][0], 1); |
|
printf(" %d=>%u", i, hash_bernstein(szLine, 1, 1)); |
|
} |
|
printf("\n"); |
|
printf(" hash_jenkins:"); |
|
for (i = 0; i < 8; i++) { |
|
memset(szLine, 0, 256); |
|
memcpy(szLine, &szAvalanche[i][0], 1); |
|
printf(" %d=>%u", i, hash_jenkins(szLine, 1)); |
|
} |
|
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; |
|
} |