私は非常に悪いWeb APIコードをC#で継承しました。私はそれを改善する必要があるが、どこから始めるべきか分からない。たくさんのクラスがあり、コードは悪夢です。私はまた、コードの一部が使用されることはないと思います。パフォーマンスをトレースして記録し、Web APIリクエストで呼び出すにはどうすればよいですか?
私は、各リクエストが呼び出された回数と、各リクエストが最後に何時だったかをカウントしたいと思います。すべての結果をテーブルに記録したい。 1日か2日で、私は最もよく使われているものと時間がかかるものの明確な視点を得ることができました。クライアントはそれについて不平を言っています。
私はログのためにNlogを使用し、パフォーマンスの計算には簡単なストップウォッチを使用します。何を指示してるんですか?トレース用にFilterと属性を使用する方が良いことは分かっていますが、このようなパフォーマンスをどのように記録してトレースすることができますか?
// GET api/Item/5
public Item GetItem(string id)
{
// I don't use string.Format in my real code. This is just for this example.
logger.Trace(string.Format("Request: GET api/Item/{0}", id));
Stopwatch sw = new Stopwatch();
sw.Start();
Item item = context.Items.Single(i => i.Code == id);
sw.Stop();
logger.Trace(string.Format("Response: GET api/values/{0}\r\nElpased={1}\r\rn{2}", id, sw.Elapsed, response));
私は、これらすべてのトレースとパフォーマンスの仕事は私のconfigファイルから有効または無効になりますここでもちろん
http://weblogs.asp.net/fredriknormen/log-message-request-and-response-in-asp-net-webapi
Exact time measurement for performance testing
へ
おかげで以前の情報を見つけました。 NLogのためにそれが組み込まれています。ストップウォッチのために、私は何かを構築するつもりです。私はこれを生産に常に生かしておくつもりはありません。
Resharperはここでは役に立ちません。 Resharperは実行時に未使用の要求を検出できません。 –
属性ベースのログを確認するhttp://stackoverflow.com/questions/13655541/wcf-service-attribute-to-log-method-calls-and-exceptions – Prathyush
[OK]を、私の質問を読むオフピアPe'er。それはツールを使用せずに、コードを書くことに関するものです。 –