プロが教える店舗&オフィスのセキュリティ対策術

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

Visual C++ 2008で作成した32ビットアプリケーションを
ネイティブなx64アプリとしてリビルドし、Windows7マシンで両者を比較したところ、
32ビット版に比べてx64版は実行処理速度が20%ほど低下してしまいました。
ソースは公開できませんが、30万行程の音声解析アプリケーションです。

どのサイトを見ても、x64版アプリの実行速度は多くの場合向上が見込まれる、
としか書かれていないのですが、速度が低下する要因としては何が考えられますか?
一般的なことで構いませんので、ご存知でしたら教えてください。

A 回答 (2件)

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

    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

使用したCPUは、IntelのCore 2 Quad Q6600です。
こちらの面から調査したところ、確かに32ビットの最適化に比べて64ビットの最適化の性能が思わしくなく、命令の実行効率が若干落ちるとの記述が見受けられました。

Core i5やi7では改善されているようですが、あまりCPUによる制限は加えたくありません…。
もしCore 2系でも処理速度向上を狙うならば、8バイト変数を用いた64ビット専用命令での速度向上アプローチも考えないといけませんね。

お礼日時:2010/07/17 11:55

以前日経Linuxで読んだものですが…


64ビットOSだと、メモリ関連が遅くなることがあるようです。

仮想メモリアドレスと物理メモリアドレスの変換テーブルのアクセスに関する問題…と書かれていたような。
しかし…それでも20%もの差が出るとは思えません。
アプリケーションは64ビットネイティブでも、コール先に32ビットが紛れ混んでいたりしないでしょうか?
# 無いとは思いますけど…
    • good
    • 0
この回答へのお礼

ご解答ありがとうございます。

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

お礼日時:2010/07/17 11:19

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!