連絡先のリストを返す単純な Web API があります。
public class ContactsApi : ApiController
{
public List<Contact> GetContacts()
{
Stopwatch watch = new Stopwatch();
watch.Start();
// Doing some business to get contacts;
watch.Stop();
// The operation only takes less than 500 milliseconds
// returning list of contacts
}
}
以前Stopwatch
にデータ検索のパフォーマンスをテストしたところ、1 秒もかからないことは明らかです。ただし、Chrome ブラウザ経由でアクションにリクエストを発行すると、GetContacts
データが返されるまでに 4 ~ 5 秒かかります。
どうやら、その遅延は私のデータ取得コードとは何の関係もありません。Web API の実行が遅いようです。しかし、それをデバッグしてトレースする方法がわかりません。
ASP.NET HTTP 要求プロセス パイプラインのタイミングをログに記録するユーティリティはありますか? つまり、各イベントが何時に発生したかを示すNavigation Timingのようなものでしょうか?