• ベストアンサー

64ビット化による処理速度低下の要因について

64ビット化による処理速度低下の要因について Visual C++ 2008で作成した32ビットアプリケーションを ネイティブなx64アプリとしてリビルドし、Windows7マシンで両者を比較したところ、 32ビット版に比べてx64版は実行処理速度が20%ほど低下してしまいました。 ソースは公開できませんが、30万行程の音声解析アプリケーションです。 どのサイトを見ても、x64版アプリの実行速度は多くの場合向上が見込まれる、 としか書かれていないのですが、速度が低下する要因としては何が考えられますか? 一般的なことで構いませんので、ご存知でしたら教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

プロセッサによっては 64ビットの整数演算を 1クロックでできないことがあるかもしれない.

caps_kana
質問者

お礼

ご回答ありがとうございます。 使用したCPUは、IntelのCore 2 Quad Q6600です。 こちらの面から調査したところ、確かに32ビットの最適化に比べて64ビットの最適化の性能が思わしくなく、命令の実行効率が若干落ちるとの記述が見受けられました。 Core i5やi7では改善されているようですが、あまりCPUによる制限は加えたくありません…。 もしCore 2系でも処理速度向上を狙うならば、8バイト変数を用いた64ビット専用命令での速度向上アプローチも考えないといけませんね。

その他の回答 (1)

  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.1

以前日経Linuxで読んだものですが… 64ビットOSだと、メモリ関連が遅くなることがあるようです。 仮想メモリアドレスと物理メモリアドレスの変換テーブルのアクセスに関する問題…と書かれていたような。 しかし…それでも20%もの差が出るとは思えません。 アプリケーションは64ビットネイティブでも、コール先に32ビットが紛れ混んでいたりしないでしょうか? # 無いとは思いますけど…

caps_kana
質問者

お礼

ご解答ありがとうございます。 念のため調べてみましたが、全てのバイナリは64ビットバイナリとして作成されています。 メモリ関連の問題は初耳です。調査してみようと思います。