INT32およびINT64にどのようなパフォーマンスを期待できますか?
-
15-10-2019 - |
質問
私はしばしばprogramsのようなものを見ます これ, 、 どこ Int64
32ビットプラットフォームの絶対的なパフォーマンスキラーです。私の質問は今です:
タスクに特定の単語の長さが必要な場合(私の場合はRNG) Int64
64ビットプラットフォームで効率的ですか、それともC-Callsを使用しますか?そして、どれほど効率的であるか Int64
に Int
?
解決
64ビットシステムINT64で したほうがいい 元気になります、私は確かにわかりません。
さらに重要なことは、あなたが暗号またはランダムな数世代をやっているならあなたです しなければならない アルゴリズムが使用するように言っているデータ型を使用して、署名された性質にも注意してください。これを行わないと、間違った結果が得られます。つまり、暗号化が安全ではないか、乱数ジェネレーターが実際にランダムではないことを意味する可能性があります(RNGは硬く、多くはランダムに見えますが、そうではありません)。
他の種類の作業では、可能な限り整数を使用するか、さらに優れている場合は、積分型クラスを使用してプログラムを多型にします。それから、プログラムがプロファイルよりも遅いと思われる場合は、スピードアップしようとするときにどこに集中すべきかを判断してください。整数からintに変更する積分タイプクラスを使用する場合は簡単です。 Haskellは、オーバーヘッドを避けるために多型を使用する(ほとんどの)コードを専門とするのに十分賢いはずです。
他のヒント
ここで64ビットのパフォーマンスに関する興味深い記事:
記事が述べているように、大きなボトルネックはプロセッサではなく、キャッシュとメモリI/Oです。