Мне нужен уникальный идентификатор для различения сущностей, но в действительности у этих сущностей не так много, и идентификатор может повторяться, когда сущность уничтожается. Объекты создаются в распределенной системе и могут создаваться несколько раз одновременно.
В настоящее время используется популярная библиотека UUID, но UUID - это 128-битное число. Согласно дизайну моей системы, типа int более чем достаточно. Если UID может быть переработан, 8-байт должен быть в порядке. Поэтому я думаю, что есть много места для оптимизации.
Например:
bool isEqual(const char *uid1, const char *uid2) {
return strcmp(uid1, uid2) == 0;
}
Если я могу сделать UID целым числом вместо строки, тогда мне не нужно использовать функцию сравнения строк.
bool isEqual(int uid1, int uid2) {
return uid1 == uid2;
}
Но я не знаю сейчас, что есть зрелые библиотеки, которые отвечают моим потребностям.
Итак, я хочу спросить вас:
- Насколько это возможно, если я сам это осуществлю?
- С какими трудностями я столкнусь?
- На что следует обратить внимание?
- Есть ли библиотека, которая уже реализует подобные функции?
- Стоит ли?
Кстати, я могу использовать C / C ++ / lua.