0

奇妙な状況に遭遇し、何をどのように探すべきかわかりません。

Web プロジェクトでホストされている Silverlight プロジェクトを使用しています。この Silverlight プロジェクトは、Web プロジェクトによってホストされる REST サービスを使用して通信します。

これをデバッグモードで実行すると、すべてが期待どおりに正常に実行されます。そこで、プロファイリングを行い、パフォーマンスが低下している可能性のあるすべての場所を確認することを考えました。ここが興味深い部分です。

VS2012 プロファイラーを実行しましたが、実行されたメソッド、時間などに関連するすべての情報が収集されています。しかし、今回の私のプロジェクトは超高速です。通常のデバッグでは実行に約 1 秒かかっていたクエリが、現在は 200 ミリ秒未満で実行されています。通常モードで実行するのに約 20 秒かかる非常に集中的なクエリが 1 つありますが、プロファイリングでは 600 ミリ秒未満かかります。

つまり、私のコードとプロジェクトはこれほど高速に実行できますが、何らかの理由で、通常のデバッグ シナリオではそれほど高速ではありません。

ボンネットの下で何が起こっているのか、そして通常のシナリオでこのパフォーマンスをどのように達成できるのか、誰かが光を当てることができますか.

また、リリース モードと IIS への公開も試しましたが、プロファイリング モードの場合ほど優れたパフォーマンスを発揮するものはありませんでした。

技術的には、私が以前に考えていたのはプロファイリング モードであり、その時点で VS2012 も他のデータを収集しているため、パフォーマンスは通常よりも低くなるはずです。

私は混乱しています。助けてください。

ありがとう

4

1 に答える 1

1

現時点ではおそらく助けを必要としないことはわかっていますが、この投稿に出くわした他の人のために、私は2セントを差し上げます.

私が取り組んでいる XNA プロジェクトでも同じ問題がありました。デバッグ モードとリリース モードの両方で、特定の状況で大幅な速度低下が見られました。それは私を1 FPS未満に引き下げました。問題を解決するために問題をプロファイリングしようとしましたが、プロファイリング中に問題は発生しませんでした。

私は最終的に、スローダウンがその状況で呼び出していた Console.WriteLine() によって引き起こされていることを発見しました。コメントアウトすると、デバッグビルドとリリースビルドの両方の問題が解決しました。どうやら、 Console.WriteLine は信じられないほど遅いです。

于 2013-12-22T23:47:29.327 に答える