GUIDがどのくらいあたらないのかなぁと思った話。

公開日:2019-03-17
最終更新:2019-03-17

一位の値としてGUIDやUUIDを使いますよね?

MicrosoftのGUIDはRandam(UUIDv4)と聞きまして調べてました。
UUID(v4) がぶつかる可能性を考えなくていい理由」という記事で解説を読み納得をしたのですが実際にある程度試行して試してみようかと思いました。

方針

  • 適当に。
  • 私が満足できる範囲で。

ということで、Int32のMinValueからMaxValueの間でやろうかなと思いました。
「4,294,967,295」回試行して当たるかどうか確認するという形です。

ソースコード

using System;  
using System.Diagnostics;  
using System.Threading.Tasks;  

namespace guid  
{  
    class Program  
    {  
        static void Main(string[] args)  
        {  
            var x = Stopwatch.StartNew();  
            var guid = System.Guid.NewGuid().ToString();  
            try{  
                Parallel.For(Int32.MinValue, Int32.MaxValue, (cnt) => {  
                    if(cnt % 1000000000 == 0){  
                        Console.WriteLine(cnt);  
                    }  
                    if(System.Guid.NewGuid().ToString() == guid){  
                        //同じなら終了  
                        throw new Exception("あたったよ");  
                    }  
                });  
            } catch(Exception e ){  
                Console.WriteLine(e.Message);  
            }  
            x.Stop();  
            Console.WriteLine(x.Elapsed.ToString());  
        }  

    }  
}

実行結果

> dotnet run .\bin\Debug\netcoreapp2.2\guid.dll  
0  
-1000000000  
-2000000000  
2000000000  
1000000000  
00:07:42.3505423

感想

まぁ当たらないと思いましたがあたりませんでしたねぇ~。これぐらい当たらなければ実用上ほぼぶつからないと思っていてよさそうです。

記事が少しでもいいなと思ったらクラップを送ってみよう!
0
+1
@saitooooの技術ブログ

よく一緒に読まれている記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる

技術ブログをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

技術ブログを開設する

Qrunchでアウトプットをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

Markdownで書ける

ログ機能でアウトプットを加速

デザインのカスタマイズが可能

技術ブログ開設

ここから先はアカウント(ブログ)開設が必要です

英数字4文字以上
.qrunch.io
英数字6文字以上
ログインする