3

私はMSDNのプロファイラーチュートリアルを読んで練習しました。しかし、ライブラリソリューションをプロファイリングする方法が見つかりませんでした(ライブラリでは[プロファイリングで起動]ボタンが無効になっています)。

  1. これまで考えられた唯一の解決策は、プロファイリングの目的で実行可能なプロジェクトを作成することです。
  2. Visual Studio TeamSystemのテストフレームワークを使用してライブラリの単体テストを既に作成しているので、Rick MinerichがNUnitで行うように、それらをプロファイルに使用できると思います。

誰でも私に正しい方向を向けることができますか?

4

5 に答える 5

0

デフォルトでは、すべてのプロジェクトにプログラムテストが必要です。これは、コードを実行するためのより簡単なモードです。今、あなたはエントリーのすべての可能性をカバーすることを考えるべきです。彼はまた、カバレッジのツールを使用します。

于 2009-03-06T13:23:48.400 に答える
0

実際には、ターゲットのリストに (ターゲットを右クリックして) 任意の実行可能ファイルを追加できます。

Program.cs のテキストは非常に単純です。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Reflection;

namespace ConsoleTest
{
    class Program
    {
        static void Main(string[] args)
        {
            YourDllLibrary.Tests.TestClass t = new YourDllLibrary.Tests.TestClass();
            t.Init();
            MethodInfo[] m = t.GetType().GetMethods();
            for (int i = 0; i < m.Length; i++)
            {
                MethodInfo mi = m[i];

                if (mi.DeclaringType.Name != t.GetType().Name )
                    continue;

                if(Attribute.GetCustomAttribute(mi, 
                    typeof(Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute)) == null)
                    continue;

                try
                {
                    Console.Write(mi.Name + " - ");
                    mi.Invoke(t, null);
                    Console.WriteLine("passed");
                }
                catch
                {
                    Console.WriteLine("failed");
                }
            }
        }

    }
}
于 2010-01-07T23:18:41.230 に答える
0

プロファイリングはランタイム技術であるため、よく理解している場合は、ソフトウェアを実行してランタイムプロファイルを作成できるようにする必要があります。

ライブラリを通常実行することもできません。最も簡単なオプションは、テストを実行するか、ライブラリを使用する単純なexeを作成することです。dll だけを計測できるので、必要な場所だけをプロファイリングできます。

于 2009-03-03T17:03:32.890 に答える
0

これはあまり意味がありません。Visual Studio プロファイラーは、コードの静的分析を実行して速度を報告しません。それを実行して、コードをインストルメント化するか、コードの各セクションにかかる時間を見積もるために実行中のコードのサンプルを取得します。

それを踏まえて、ライブラリのプロファイリングをどのように提案しますか? Visual Studio はどのようにしてテストを認識し、どのテストをプロファイリング目的で実行するのでしょうか?

回答: 実行可能ファイルを作成し、それらのテストを呼び出すと、それが認識されます。

于 2009-03-03T17:07:49.010 に答える