16

私は主に32ビットの組み込みシステムで作業してきましたが、16ビットの同等のシステムよりもネイティブの32ビット型(int、float)を使用する方が一般的に高速でした。速度低下は、プロセッサが操作を実行する前に16ビット数を32ビットに拡張したことによるものです。

今、私はPCと64ビットOSに移行しました。私の質問は-32ビットタイプは64ビットマシンで速度低下を引き起こしますか?

たとえば、MyApp.exeを32ビットアプリケーションとしてビルドした場合、64ビットOSでは実行速度が遅くなりますか?

アプリのパフォーマンスには多くの要因が関係していることを理解しており、それらの要因(IO速度、より高速なメモリなど)を意図的に質問から除外しています。

4

1 に答える 1

11

32ビットアプリケーションの実行速度が速い場合と遅い場合があります。パフォーマンスに影響を与える多くの競合する要因があります。一般的に、どちらの方向の違いもそれほど大きくありません。

すべての要素が関係している現実の世界では常にパフォーマンスが発生するため、パフォーマンスの考慮事項から要素を合法的に除外する方法がわかりません。速度は理論的なものではなく、単独で扱うことはできません。

これは、著者がベンチマークを行った記事です。

http://www.osnews.com/story/5768

彼は、32ビットバイナリが彼のテストでより高速であることを発見しました。それは2004年の初めにSPARCにありました。

64ビットアプリケーションへの移行に関するIntelの2010年の記事は次のとおりです。

http://software.intel.com/en-us/articles/moving-from-32-bit-applications-to-64-bit-applications-en/

この記事によると、64ビットバイナリはより高速な数学を提供できるため、正しく最適化されていれば、数学を多用するコードはより高速になるはずです。そうしないと、64ビットコードの速度が遅くなる可能性があります。特に、メモリが多くなり、RAMへのアクセスにかかる時間が長くなる可能性があります(キャッシュミスが頻繁に発生する可能性があります)。

于 2012-09-01T04:42:38.923 に答える