kkamegawa's weblog

Visual Studio,TFS,ALM,VSTS,DevOps関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

IntelliTraceがWindows サービスに対応

IntelliTraceはVisual Studioから実行するだけではなく、コマンドラインから実行するスタンドアロン型のものもあります。こちらは実行するだけならライセンスは不要です(そのはず)。生成されたiTraceファイルを解析する場合、Visual Studio Ultimateか、Visual Studio 2015 Enterpriseでも対応しているので、使いやすくなってきました。

Visual Studio 2010時代に書いたものですが、参考になるでしょうか。

Visual Studio 2010の新機能「IntelliTrace」 − @IT

で、そのスタンドアロン型のコレクターですが、2015でWindowsサービスにも対応しました(もちろんマネージドのみ)。どうやって使うかはこちらのスライドで解説しています(18ページから)。

blogs.msdn.com

Windows サービスでスタンドアロンコレクターを使うにはこの手順をした後、レジストリをいじります。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\対象サービス名 配下に複数文字列型でEnvironmentという値を作ります。Environmentにはこんな感じでデータを追加します。

COR_ENABLE_PROFILING=1 COR_PROFILER={2AA1AA98-2CAA-4FCF-86CE-EFA007737E83} COR_PROFILER_PATH=コレクターを展開したパス\Microsoft.IntelliTrace.Profiler.12.0.0.SC.dll VSLOGGER_CPLAN=コレクターの定義xmlファイルのフルパス

サービスを再起動します。IntelliTraceを実行するとかなり重くなるので、サービス開始のタイムアウト時間を変更したほうがいいかもしれません。もしエラーになるような場合、レジストリを編集します。

レジストリの場所:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control 名前: ServicesPipeTimeout 型: REG_DWORD データ: ミリ秒で指定

楽しいIntelliTraceライフを!