Блокировка обычно выбирается для максимизации «занятости». Поиск на CUDA Occupancy для получения дополнительной информации. В частности, см. Таблицу электронных калькуляций CUDA.
Технически, нет никаких "тире" в GUID. GUID является 128-разрядным значением, которое обычно хранится следующим образом (использующий C# здесь для представления структуры):
public struct Guid
{
public ulong Data1;
public ushort Data2;
public ushort Data3;
public fixed byte Data4[8];
}
тире находятся в строковое представление из GUID.
тире являются дополнительными и не требуются в строковом представлении GUID.
Однако существуют исторические причины как, туда, где размещение тире , связано с тем, как GUID были сгенерированы, но что исторический семантический больше не применяется.
Это - пример разделения на блоки, точно так же, как номера телефона, номера кредитных карт, и т.д.
Примерно каждый визуальный represenation гуида, который я видел, использует штриховой формат. Это намного легче на глазах.
Guid
класс.NET распознает набор различных форматов: тире как разделители, никакие разделители, скобки как разделители, круглая скобка как разделители, никакие разделители, и т.д.
В начальной версии спецификации UUID (универсальный уникальный идентификатор) каждый из элементов данных имел семантическое значение:
{ time_low } - { time_mid } - { time_high_and_version } - { clock_seq_and_reserved clock_seq_low } - { node_id }
Эти элементы были разработаны для предоставления временных (биты времени) и пространственных (биты хоста) ) уникальность.
Поскольку математическая вероятность коллизий в пространстве ключей из 2 ^ 1024 случайных битов оказалась астрономически маловероятной, в последующих версиях спецификации UUID были постепенно сокращены время и данные хоста по соображениям безопасности и конфиденциальности. .
Единственными элементами, которые сохраняют какое-либо значение, являются биты версии и зарезервированные биты.
UUID версии 3 являются производными от MD5-хэша URI или другого отличительного имени.
Версия 4 генерируется со случайными данными и в настоящее время является наиболее распространенной реализацией, которую вы можете встретить в реальных условиях.
Версия 5 получена из хэша SHA1.
Поскольку дефисы указаны для форматирования ASCII UUID в RFC, даже если отдельные разделы больше не сохраняют свое первоначальное значение, они по-прежнему необходимы, если вам нужна совместимость.
UUID также иногда сохраняются в виде строки в кодировке base64 или ascii85, чтобы сэкономить место для передачи через транспорты, которые не являются двоично-безопасными, и соблюдение RFC не требуется.
Ascii: 3F2504E0-4F89-11D3-9A0C-0305E82C3301 Base64: 7QDBkvCA1+B9K/U0vrQx1A Ascii85: 5:$Hj:Pf\4RLB9%kU\Lj
Ссылки:
RFC4122 (см. Стр. 3 специально для ABNF-описания формата UUID)
Википедия GUID UUID
Дефисы используются для разделения каждого числа
E93416C5-9377-4A1D-8390-7E57D439C9E7
Hex digits Description
8 Data1
4 Data2
4 Data3
4 Initial two bytes from Data4
12 Remaining six bytes from Data4
Если вы хотите где-то сохранить guid, сохраните его как массив из 16 байт, а не как его текстовое представление. Вы сэкономите много места, и вопроса о дефисах не возникнет.
На самом деле GUID - это просто число. Дефисы показывают, как разбиваются различные компоненты, но на самом деле они не являются частью числа. Это похоже на IP-адрес - вы можете сохранить 32-битное число или строку с точками, они эквивалентны.
Изыскания абсолютно не влияют на уникальность или случайность значения. Они являются просто пережитком определения GUID и визуально разделяют четыре отдельные части данных, составляющих GUID.
Дефисы обозначают байтовую структуру Guid.
typedef struct _GUID
{
DWORD Data1;
WORD Data2;
WORD Data3;
BYTE Data4[8];
} GUID;
Для:
(XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX)
Возможно, вы можете удалить их перед сохранением. По крайней мере, в .NET конструктор типа Guid будет инициализировать переменную Guid из ее строкового представления независимо от того, остались ли дефисы или удалены.
Это просто для удобства. GUID состоит из 16 байтов, что составляет 32 символа в шестнадцатеричном текстовом представлении. Без дефисов GUID труднее воспринимать людьми и труднее распознавать как GUID, а не как случайные 16-байтовые числа.