Насколько короткий GUID может быть?

Вы получаете стандартную библиотеку C ++ и другие вещи, которые, я думаю, статически связаны, поскольку у mingw есть собственная реализация этих библиотек.

Не беспокойтесь об этом, когда вы создаете более сложную программу, размер соответственно не увеличивается.

18
задан Ufuk Hacıoğulları 29 June 2012 в 11:42
поделиться

5 ответов

Ответ Грега Дина правильный, но чтобы понять, как генерируется GUID и почему его не следует сокращать, я настоятельно рекомендую вам прочитать статью ниже.

Старое новое : GUID глобально уникальны, но подстроки GUID не являются :

Заказчику необходимо создать 8-байтовые уникальные значения и их начальные идея заключалась в том, чтобы сгенерировать GUID и выбросить прочь вторую половину, сохраняя первые восемь байтов. Они хотели знать если бы это была хорошая идея.

Нет, это не лучшая идея.

Алгоритм создания GUID полагается на том, что в нем все 16 байт использовать для установления уникальности, и если выбрасываешь половину, проигрываешь уникальность.

25
ответ дан 30 November 2019 в 06:22
поделиться

В зависимости от вашего приложения все сводится к тому, насколько велик ваш "G" (глобальный) в вашем приложении.

"GUID", глобальный уникальный идентификатор. Типичные современные «общие» идентификаторы GUID предназначены для любого приложения, и их «G», их «Global» - это буквально так. Глобальный. Мировой. По приложениям, странам, географии, всему. 16 байтов - это МНОГО информации.

Теперь, если В ВАШЕМ ПРИЛОЖЕНИИ, ваша «G» не такая уж большая, если у вас нет ожидания или намерения, что «G» будет глобальным в мировом смысле, а не просто "глобальный" в смысле пространства приложения, тогда вы можете легко уменьшить размер до объема вашего приложения.

В вашей компании четыре подразделения, больше никогда не собираетесь? 2 бита - 0, 1, 2, 3 - это достаточно большой GUID. для этой задачи. Ясно, что это надуманное приложение.

В прошлом мы узнали о последствиях «ограничения битов», когда мы решали проблемы 2000 года. Итак, «биты дешевы» - это достаточная причина НЕ ограничивать размер GUID и ошибаться в сторону «слишком много бит на данный момент». Но, по правде говоря, многие приложения просто ограничены, многие приложения могут генерировать большой объем данных или иметь ограниченную полосу пропускания там, где нет необходимости в 16-байтовом GUID, и его использование влияет на производительность и ресурсы.

Итак, поймите концепцию GUID и то, как она применяется к вашим приложениям. Тогда вы сможете сделать его любого необходимого размера.

когда мы справились с проблемами 2000 года. Итак, «биты дешевы» - это достаточная причина НЕ ограничивать размер GUID и ошибаться в сторону «слишком много бит на данный момент». Но, по правде говоря, многие приложения просто ограничены, многие приложения могут генерировать большой объем данных или иметь ограниченную полосу пропускания там, где нет необходимости в 16-байтовом GUID, и его использование влияет на производительность и ресурсы.

Итак, поймите концепцию GUID и то, как она применяется к вашим приложениям. Тогда вы сможете сделать его любого необходимого размера.

когда мы справились с проблемами 2000 года. Итак, «биты дешевы» - это достаточная причина НЕ ограничивать размер GUID и ошибаться в сторону «слишком много бит на данный момент». Но, по правде говоря, многие приложения просто ограничены, многие приложения могут генерировать большой объем данных или иметь ограниченную полосу пропускания там, где нет необходимости в 16-байтовом GUID, и его использование влияет на производительность и ресурсы.

Итак, поймите концепцию GUID и то, как она применяется к вашим приложениям. Тогда вы сможете сделать его любого необходимого размера.

или ограничиваться полосой пропускания там, где нет необходимости в 16-байтовом GUID, а его использование влияет на производительность и ресурсы.

Итак, поймите концепцию GUID и то, как она применяется к вашим приложениям. Тогда вы сможете сделать его любого необходимого размера.

или ограничиваться полосой пропускания там, где нет необходимости в 16-байтовом GUID, а его использование влияет на производительность и ресурсы.

Итак, поймите концепцию GUID и то, как она применяется к вашим приложениям. Тогда вы сможете сделать его любого необходимого размера.

12
ответ дан 30 November 2019 в 06:22
поделиться

Чем короче "предположительно глобально уникальные" идентификаторы, тем выше вероятность столкновения, когда многие из них генерируются более или менее случайным образом - и, вероятно, этот шанс выше, чем вы думаете, из-за " парадокс дня рождения "... см. http://betterexplained.com/articles/understanding-the-birthday-paradox/ . Как (очень приблизительное, но полезное) практическое правило, вероятность не может быть пренебрежимо мала, если (среди N возможных UID) вы назначите sqrt (N) или около того. Таким образом, 128-битный идентификатор довольно защищен от случайного столкновения даже для многих миллиардов идентификаторов; но если вы сократите его, скажем, до 32 бит, вы

5
ответ дан 30 November 2019 в 06:22
поделиться

Это ровно 16 байт.

С технической точки зрения эффект их сокращения будет зависеть от алгоритм, используемый для их генерации. Учитывая, что API, который вы использовали (вероятно), не гарантирует конкретную версию или реализацию, сокращать их - плохая идея. Даже если это так, это плохая идея. Если вам требуется менее 16 байт энтропии, вам, вероятно, не следует использовать GUID.

Для получения дополнительной информации: http://en.wikipedia.org/wiki/Globally_Unique_Identifier

3
ответ дан 30 November 2019 в 06:22
поделиться

Put very simply, GUIDs are guaranteed to be unique because they act like coordinates.

Traditionally*, one half was specific to the machine (by using the MAC address) and one half was derived from the time.

Because MACs are unique between machines and each machine can execute one instruction at a time (traditionally remember!) the GUID will definitely be unique.

This means however, that if you ditch any part of a GUID, you lose the guarantee of uniqueness. Mr. Martelli gives a good explanation of why this is more of a problem than you might assume.

*I say traditionally, but I've never read an article that indicates a major change. I don't think actual MACs are used nowadays (for security reasons I guess), but I think they're still MAC-derived or at least machine specific.

0
ответ дан 30 November 2019 в 06:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: