2008-10-15 2 views
0

Я сделал некоторые улучшения производительности для бэкэнда моего приложения и продемонстрировал преимущество конечным пользователям графического интерфейса, мы использовали страницу Trace.axd для принятия тайминги. (Интерфейс - .Net 1.1, а бэкэнд - Java, подключенный через веб-службы.)Как увеличить информацию в ASP.NET Trace

Однако эти тайминги не показывают разницы между старым и новым бэкэндами.

Поставив точку останова на бэкэнд и удерживая там запрос в течение 30 секунд, я могу видеть из Trace.axd, что POST занимает 3 мс, а GET занимает 4 с. Я пропустил около 26 секунд ...

POST - это то, где должно быть улучшение производительности, но время на странице трассировки включает только время, необходимое для отправки запроса, а не время, которое требуется для возврата ,

Есть ли способ повысить детализацию информации в трассировке, включив в нее весь запрос? Или есть другой способ принять необходимые измерения?

ответ

0

Я не уверен, как вы делаете запросы на стороне .NET, но я предполагаю, что здесь есть HttpWebRequest. Я ожидал, что HttpWebRequest.GetResponse() вернется, как только он получит заголовки ответов. Таким образом, вы можете начать обработку начала большого ответа, в то время как остальная часть все еще загружается. Если ваши сообщения трассировки находятся непосредственно перед и после вызова GetResponse, вы не увидите всего времени выполнения бэкэнд. Можете ли вы добавить сообщение о трассировке сразу после закрытия ответа?

+0

Это не вопрос HttpWebRequest. Это больше похоже на вопрос ASPX. – 2008-10-15 12:30:50

+0

Да, нет явного HttpWebRequest - только магия Microsoft WS – fiddlesticks 2008-10-15 12:40:32

0

Это ненормально, что вывод трассировки не отображает все время, проведенное в Brakpoint. Вы проверили общий столбец времени, чтобы узнать, соответствует ли оно времени, которое вы потратили на запрос? Не забывайте, что в одном из столбцов отображается время, затраченное с предыдущей инструкции trace.

Если вы хотите получить более подробные данные в выводе трассировки, вы можете добавить свой собственный. Класс TraceContext имеет два метода: Warn и Write, которые добавляют строки к выходу (предупреждение добавляет его красным цветом).

TraceContext доступен с каждой страницы или элемента управления: просто используйте this.Trace.Warn() или this.Trace.Write() (и я думаю, что он также доступен через класс HttpContext).

1

ОК, я получил то, что хотел в конце. Проблема заключается в том, что трассировка IIS не включает время возврата POST.

Я обнаружил, что могу использовать Trace.Write(), чтобы добавить пользовательские записи в журнал трассировки и даже добавить категорию, используя Trace.Write (строка, строковое сообщение).

Добавление вызова в Trace.Write() в моем коде, который выполняется после завершения POST, дает мне лучшую фигуру.

Тем не менее, он не идеален, так как это обычай, и мне доводилось максимально приблизить его к концу цикла POST.

Смежные вопросы