У меня есть ситуация, когда у меня много компьютеров и вам нужно иметь уникальные идентификаторы.Самый маленький (по размеру) объект для хранения уникального номера?
Они отправят свои уникальные идентификаторы с запросом API. Объект выглядит
class ID {
long timestamp;
int id;
}
Самый маленький размер возможный для этого объекта 24 bytes (8 byte long, 4 byte int, 8 byte object reference and 4 byte padding)
. Мне нужно сохранить миллионы этих объектов в памяти, поэтому память вызывает беспокойство. Мне нужно timestamp
для заказа.
Первоначально я думал, что каждый узел, когда он начинает будет UUID
(как уникальный String. Поскольку UUID
принимает 128 bits
он может не поместиться в Int
диапазоне
Каковы мои варианты?
Вы считали, что каждый клиент генерирует для каждого запроса 16-байтовый GUID через 'UUID.randomUUID()'? И, может быть, удерживая эти 16 байтов как 2 длинных в существующем объекте? –
Почему вы не используете только метку времени в качестве идентификатора, когда вы создаете экземпляр нового объекта, вероятно, очень маловероятно иметь повторяющиеся отметки времени. –