web-dev-qa-db-ja.com

32ビットアプリは64ビットOSで高速または低速で実行されますか?

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

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

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

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

15
Chris Masterton

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(キャッシュミスの頻度が高くなる)へのアクセスに時間がかかる可能性があるためです。

10
Nate C-K