Lou*_*hys 1 .net c# algorithm guid probability
http://msdn.microsoft.com/en-us/library/system.guid.aspx
它是如何工作的?它如何保证唯一ID?它只依赖于概率还是还有其他技巧?我是否可以始终相信它可以提供独特的ID或者我应该避免guid的情况?
这是一个有趣的小程序:
class Program
{
static void Main(string[] args)
{
var guids = new HashSet<string>();
var sw = Stopwatch.StartNew();
while(true)
{
var guid = Guid.NewGuid().ToString().Replace("-", "").Substring(0, 16);
if (guids.Contains(guid)) break;
guids.Add(guid);
}
Console.WriteLine("Duplicate found in {0} ms, after {1} items.", sw.ElapsedMilliseconds, guids.Count);
Console.ReadLine();
}
}
Run Code Online (Sandbox Code Playgroud)
我打赌你会在发现一个骗局之前耗尽内存;)
编辑:即使只使用一半Guid.