Я пытался создать базу данных сущностей, используя словарь с GUID в качестве ключа, я просто хочу знать, какой из них быстрее или занимает меньше памяти по сравнению с другими.
Вотсловари с разными типами ключей:
String
public Dictionary<string, Object> unityObjects;
GUID
public Dictionary<System.Guid, Object> unityObjects;
BigInteger
public Dictionary<BigInteger, Object> unityObjects;
Ключи словаря генерируются с использованием System.Guid:
Guid guid = Guid.NewGuid();
// Using string dictionary
unityObjects.Add(guid.ToString(), myObj);
// Using GUID dictionary
unityObjects.Add(guid, myObj);
// Using BigInteger dictionary
BigInteger bigInt = new BigInteger(guid.ToByteArray());
unityObjects.Add(guid, myObj);
Или я должен использовать меньший уникальный идентификатор с Int32 или Int64 вместо GUID?(Что-то вроде кода ниже)
System.Random rng = new System.Random();
byte[] buf = new byte[8];
rng.NextBytes(buf);
long longRand = BitConverter.ToInt64(buf, 0);
// A GUID with Int64 data type
long guid = (System.Math.Abs(longRand % (long.MaxValue - 0)) + 0);