Commit 3991b8ac authored by Bradley C. Kuszmaul's avatar Bradley C. Kuszmaul

Speed up keycompare (maybe)

git-svn-id: file:///svn/tokudb@131 c7de825b-a66e-492c-adef-691d508d4ae1
parent 2f28431c
...@@ -19,8 +19,7 @@ int keycompare (bytevec key1b, ITEMLEN key1len, bytevec key2b, ITEMLEN key2len) ...@@ -19,8 +19,7 @@ int keycompare (bytevec key1b, ITEMLEN key1len, bytevec key2b, ITEMLEN key2len)
return 0; return 0;
} }
#else #elsif 0
#if 0
int keycompare (bytevec key1, ITEMLEN key1len, bytevec key2, ITEMLEN key2len) { int keycompare (bytevec key1, ITEMLEN key1len, bytevec key2, ITEMLEN key2len) {
if (key1len==key2len) { if (key1len==key2len) {
return memcmp(key1,key2,key1len); return memcmp(key1,key2,key1len);
...@@ -32,7 +31,8 @@ int keycompare (bytevec key1, ITEMLEN key1len, bytevec key2, ITEMLEN key2len) { ...@@ -32,7 +31,8 @@ int keycompare (bytevec key1, ITEMLEN key1len, bytevec key2, ITEMLEN key2len) {
return -keycompare(key2,key2len,key1,key1len); return -keycompare(key2,key2len,key1,key1len);
} }
} }
#else #elif 1
int keycompare (bytevec key1, ITEMLEN key1len, bytevec key2, ITEMLEN key2len) { int keycompare (bytevec key1, ITEMLEN key1len, bytevec key2, ITEMLEN key2len) {
if (key1len==key2len) { if (key1len==key2len) {
return memcmp(key1,key2,key1len); return memcmp(key1,key2,key1len);
...@@ -46,7 +46,20 @@ int keycompare (bytevec key1, ITEMLEN key1len, bytevec key2, ITEMLEN key2len) { ...@@ -46,7 +46,20 @@ int keycompare (bytevec key1, ITEMLEN key1len, bytevec key2, ITEMLEN key2len) {
else return -1; else return -1;
} }
} }
#endif #else
int keycompare (bytevec key1, ITEMLEN key1len, bytevec key2, ITEMLEN key2len) {
int comparelen = key1len<key2len ? key1len : key2len;
const unsigned char *k1;
const unsigned char *k2;
for (k1=key1, k2=key2;
comparelen>0;
k1++, k2++) {
if (*k1 != *k2) {
return (int)*k1-(int)*k2;
}
}
return key1len-key2len;
}
#endif #endif
void test_keycompare (void) { void test_keycompare (void) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment