Hacker News new | past | comments | ask | show | jobs | submit login

If I were implementing the uuid type in Postgres and did anything other than `if(unlikely(LO(uuid1) == LO(uuid2)) && unlikely(HI(uuid1) == HI(uuid2)))` I'd consider myself doing the wrong thing, personally. Two 64-bit compares, two flag checks, and a branch, which is about as fast as it's going to get in the absence of a 128-bit architecture.

You could actually vectorize the compares in SSE, I believe (but I stopped writing assembly before SSE existed and don't know much about it at a low level). This is why it's so critical to treat a UUID as an integer instead of a string, and I see a lot of code that does the latter.




While all of that is true, it's really not relevant to a programmer deciding on which to use as a key; he has no control over any of those things.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: