none
.NET Framework 4.0で開発したアプリケーションを.NET Framework 4.5をインストールした環境での動作させると遅い RRS feed

  • 質問

  • .NET Framework 4.0で開発したウィンドウズフォームアプリケーションを、.NET Framework4.5をインストールした環境上で動かすと動作が遅い問題が発生しております。

    開発はVB.net + SQLserverで行なっております。開発環境はVisual studio2010です。ちなみに、Visual studio 2012にて、.NET Framework 4.5を対象フレームワークに設定しコンパイルしてみましたが、結果は全く同様となりました。

    特にエラーは発生しておらず、動作自体に問題はありません。

    調査の結果、Visual studioにおいて【コンパイラの詳細設定】ウィンドウ内の設定を以下のようにした所正常な速度で動作するようになりました。

    --------------------------------------------------------

    デバック情報を作成:Full

    コンパイル定数 デバッグ定数の定義:ON 

    --------------------------------------------------------

    デバッグ情報を追加すると動作が早くなるという動きがどうも腑に落ちません。

    Debug Release構成いずれでも、上記の設定を行った場合正常な速度で動作します。

    経験も浅い為知識不足で申し訳ございませんが、事例等ありましたら情報を頂きたく存じます。

    初投稿となりますので情報の不足等あると思います。その際はお手数ですがご指摘ください。




    2013年6月6日 1:41

回答

  • 特に問題が発生していなくても無駄なループが回っているとかあるかもしれませんね。

    何はともあれ、こういった場合はプロファイラで時間を要している処理・個所を特定しましょう。目に見えて遅くなるのであればサンプリングで十分特定可能だと思います。

    • 回答としてマーク XxpanzerxX 2013年6月7日 6:18
    2013年6月6日 4:45

すべての返信

  • 特に問題が発生していなくても無駄なループが回っているとかあるかもしれませんね。

    何はともあれ、こういった場合はプロファイラで時間を要している処理・個所を特定しましょう。目に見えて遅くなるのであればサンプリングで十分特定可能だと思います。

    • 回答としてマーク XxpanzerxX 2013年6月7日 6:18
    2013年6月6日 4:45
  • 特に問題が発生していなくても無駄なループが回っているとかあるかもしれませんね。

    何はともあれ、こういった場合はプロファイラで時間を要している処理・個所を特定しましょう。目に見えて遅くなるのであればサンプリングで十分特定可能だと思います。

    曖昧な質問に回答頂き、ありがとうございます。

    なるほど、premiumより上位版にはプロファイラが付属していたのですね。

    分析してみます。お陰様で一歩前進できそうです。

    しかし、デバッグ情報を追加すると動作が速くなるというのは謎過ぎます。

    遅くなるならまだわかるのですが・・・。

    .NET Framework4.0と4.5の互換性についても再度調査してみます。

    http://msdn.microsoft.com/ja-jp/library/vstudio/hh367887.aspx


    ひとまず回答としてマークします。ありがとうございました。



    2013年6月7日 6:17
  • プロファイラがどのエディションで提供されているのか気にしていませんでした。また、他の方も閲覧しますので、質問者さんがどのエディションを使用しているのかは気にしていませんでした。

    Visual Studio 2010 エディション間の機能比較によるとPremium以上のようですね。しかし、Visual Studio 2012 エディション間の機能比較によるとProfessional以上のようです。

    Visual Studio 2012でも再現するとのことですからそちらでプロファイルを採られてはどうでしょうか?

    2013年6月7日 6:27
  • プロファイラがどのエディションで提供されているのか気にしていませんでした。また、他の方も閲覧しますので、質問者さんがどのエディションを使用しているのかは気にしていませんでした。

    Visual Studio 2010 エディション間の機能比較によるとPremium以上のようですね。しかし、Visual Studio 2012 エディション間の機能比較によるとProfessional以上のようです。

    Visual Studio 2012でも再現するとのことですからそちらでプロファイルを採られてはどうでしょうか?

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

    仰るとおりVisual Studio2012においてはProfessional以上で使えるようでしたので、そちらで分析を行う予定でおりました。ご丁寧にご指摘頂きましてありがとうございました。

    根本的な原因について解りましたら、誰かの役に立つかもしれませんので報告しようかなと思います。

    2013年6月10日 4:21