EQATE(サイト・英語)は、.NET Compact Frameworkに記述されるアプリケーションのコードプロファイラ(source)を作成した。もともとは独自のニーズで記述されていたが、EQATECは.NET Compact Frameworkデベロッパのコミュニティ全体へのプロファイラのリリースを決定した。これはメモリ使用率プロファイラではなく、処理時間が多くかかる コードの箇所である、アプリケーション障害を探索するためのツールである。
EQATECによるところの主な機能は、以下のとおりである。
- 非常に低いオーバーヘッド。通常30%未満の長い実行時間で、50%未満の追加のコードサイズ。
- .NET 2.0/3.5 Compact Framework (.NET CF)アプリケーションのすべてのプロファイルを作成できる。
- コマンドラインバージョンはプロファイルを自動ビルドに統合することができる。
- サンプリングプロファイラとは対照的に、正確なインスツルメンテーション
- 個々のステートメントではなく、メソッドのプロファイルを作成する。
- 完全な呼び出しグラフの詳細がレポートされる。
- 使用は完全無料。
このプロファイラの実行は単純である。アプリケーションは通常通りコンパイルされ、プロファイラはモニターされることになるアセンブリにバイナリコードを 注入するために使用される。そしてアプリケーションは、分析のためプロファイラビューアーにロードされるレポートを作成しているデバイスで実行される。
EQATECによると、プロファイラには制限がある。
- ユーザ定義の汎用はサポートされない。メソッドの独自の汎用タイプを定義する場合、現行の結果アセンブリーは動作しない恐れがある。現在、汎用を含んでい るすべてのアセンブリーをプロファイラは単純にスキップするが、それは非常に面倒である。これをどうにかすることが最優先である。
- 再帰的メソッドは、呼び出しの合計としてレポートされる。この点に関して、より賢いビューアーが要求される。
- Read()のようなブロックメソッドは、スレッドがアンスケジュールされ、呼び出しの完了を待機する時間を含む合計時間としてカウントされる。
- StrongNameの符号付きアセンブリーはサポートされない。場合によってはプロファイルされたあとで、署名し直す必要がある。現在この機能はない。
- プロファイルされたアセンブリーでは、デバッグ情報が利用不可である。プロファイルされたバージョンをデバッグできないことを意味するが、いずれにせよ、そんなことしたくはないかもしれない。
- Visual Studioは未統合である。ソリューションのアセンブリーファイルのプロファイル作成をさらに簡単にする、アドインの作成に積極的に取り組む姿勢である。
ビデオによるプロファイラのデモ(source)が利用可能である。プロファイラはここでダウンロードすることができる(source)。