Производительность моего веб-API
Привет,
Я только что унаследовал очень плохой код веб-API на C#. Мне нужно улучшить его, но я не знаю, с чего начать. Есть много классов f, и код-это кошмар.Я также уверен, что часть этого кода никогда не используется.
Я хотел бы подсчитать, сколько раз вызывается каждый запрос и сколько времени занимает каждый запрос. Я хотел бы записать все свои результаты в таблицу. Через один-два дня я мог бы иметь четкое представление о том, что я больше всего использую и на что требуется время. Клиенты жалуются на это.
Я использую Nlog для журнала и простой секундомер для расчета производительности. Что вы предлагаете? Я знаю, что лучше использовать фильтр и атрибут для трассировок, но как я могу регистрировать и отслеживать производительность таким образом?
Что я уже пробовал:
Вот пример моего API:
// 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));
Благодаря
http://weblogs.asp.net/fredriknormen/log-message-request-and-response-in-asp-net-webapi
http://stackoverflow.com/q/969290/196526
[no name]
Как насчет установки resharper и использования широкого анализатора решений? Вы можете найти там много помощи. Используйте тестовую версию, этого достаточно. Иногда использование LINQ происходит очень медленно. Это хорошо, всего 1 строка кода,но иногда это очень медленно, если вы сравниваете его с помощью цикла for.