|
|
| version 1.2, 2011/04/28 20:28:20 | version 1.2.6.1, 2012/08/29 08:55:55 |
|---|---|
| Line 2 | Line 2 |
| #include <string.h> | #include <string.h> |
| #include <fcntl.h> | #include <fcntl.h> |
| #include <unistd.h> | #include <unistd.h> |
| #include <sys/types.h> | |
| #include <sys/endian.h> | |
| #include <sys/time.h> | |
| #include "aitcrc.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:"); |
| Line 135 int main() | Line 150 int main() |
| 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_jenkins(szLine, 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)); | |
| } | } |
| printf("\n"); | printf("\n"); |
| printf(" hash_reddragon:"); | printf(" hash_reddragon:"); |