2011-10-24 1 views
3

Intel VTune Amplifierを使用してC++アプリケーションをプロファイリングしています。 DrvPresentBuffersおよび/またはKeSynchoronizeExecutionでは、ほとんどの場合、nvoglv64.dllでより正確に費やされているようです。私はNVIDIA GeoForceグラフィックカードを持っています。プロファイリング時には、ほとんどの時間がnvoglv64.dllで費やされます。私は何を推測すべきですか?

私はプロファイリングしており、最適化のボトルネックと低いハングアップの成果を探しています。ほとんどの時間はこのNVIDIA dllに費やされているようですので、プロファイリングの結果をどのようにデコードするのか分かりません。

私のアプリケーションの知識を構築するために、アプリケーション側からの呼び出しがどこにあるかを知りたいと思います。誰かが私にいくつかのヒントを開始するために与えることができます:

  • 正確にアプリケーションの呼び出しDrvPresentBuffersを行うと、コールの種類は、私は(私のアプリケーション側)になっているはずですが
  • 私はプロファイリングする方法についての詳細情報を取得することができます
  • グラフィックカードのdllにボトルネックがあるアプリケーションを理解し、最適化します。

答えて

5

DrvPresentBuffersは、OpenGLの描画コードの一部です。そのnvoglv64.dllはあなたのnVidiaカード用の64ビットOpenGLドライバです。 64ビットWindows 7には既知のパフォーマンス問題があり、多くのドライバでこの機能が使用されています。リンクが見つかりませんでしたが、問題が発生している場合はnVidiaフォーラムを検索することができます。間違ったことや何もひどく遅いことがなければ、新しいアプリケーションに慣れていくときに最適化が始まるとは思っていません。

+2

windows7 32bで試したところ、対応するnvoglv32.dllの呼び出しはボトルネックではありません。情報をありがとう、私はこのパフォーマンスの問題について学ぶしようとします。 – Palmira