Bastien Vandamme Ответов: 0

Производительность моего веб-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.

0 Ответов