質問

私はしばしばprogramsのようなものを見ます これ, 、 どこ Int64 32ビットプラットフォームの絶対的なパフォーマンスキラーです。私の質問は今です:

タスクに特定の単語の長さが必要な場合(私の場合はRNG) Int64 64ビットプラットフォームで効率的ですか、それともC-Callsを使用しますか?そして、どれほど効率的であるか Int64Int?

役に立ちましたか?

解決

64ビットシステムINT64で したほうがいい 元気になります、私は確かにわかりません。

さらに重要なことは、あなたが暗号またはランダムな数世代をやっているならあなたです しなければならない アルゴリズムが使用するように言っているデータ型を使用して、署名された性質にも注意してください。これを行わないと、間違った結果が得られます。つまり、暗号化が安全ではないか、乱数ジェネレーターが実際にランダムではないことを意味する可能性があります(RNGは硬く、多くはランダムに見えますが、そうではありません)。

他の種類の作業では、可能な限り整数を使用するか、さらに優れている場合は、積分型クラスを使用してプログラムを多型にします。それから、プログラムがプロファイルよりも遅いと思われる場合は、スピードアップしようとするときにどこに集中すべきかを判断してください。整数からintに変更する積分タイプクラスを使用する場合は簡単です。 Haskellは、オーバーヘッドを避けるために多型を使用する(ほとんどの)コードを専門とするのに十分賢いはずです。

他のヒント

ここで64ビットのパフォーマンスに関する興味深い記事:

私のコードは64ビットでより速くなるでしょうか?

記事が述べているように、大きなボトルネックはプロセッサではなく、キャッシュとメモリI/Oです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top