Что лучший способ состоит в том, чтобы отладить проблемы производительности?

Краткий ответ - нет, вы не можете изменить среду родительского процесса, но похоже, что вам нужна среда с пользовательскими переменными среды и оболочкой, которую выбрал пользователь.

Так почему бы не просто что-то вроде

#!/usr/bin/env bash
FOO=foo $SHELL

Тогда, когда вы закончите с окружающей средой, просто exit.

6
задан Eric Anastas 2 July 2009 в 22:40
поделиться

8 ответов

Вам нужно использовать профилировщик. Вот ссылка на хороший: Профилировщик производительности ANTS .

Обновление: Вы также можете писать сообщения в контрольных точках, используя Debug.Write . Затем вам нужно загрузить приложение DebugView , которое отображает всю строку отладки с точной отметкой времени. Это бесплатное программное обеспечение, очень удобное для быстрой отладки и профилирования.

16
ответ дан 8 December 2019 в 04:31
поделиться

По моему опыту, лучший метод также и самый простой. Запустите его и, пока он работает медленно, нажмите кнопку «пауза» в среде IDE. Затем сделайте запись стека вызовов. Повторите это несколько раз. (Вот более подробный пример и объяснение.)

То, что вы ищете, - это любой оператор, который появляется более чем в одном образце стека, который не является строго необходимым. Чем больше образцов появляется, тем больше времени требуется. Способ определить, является ли оператор необходимым, - это поискать в стеке, потому что это говорит вам, почему это делается.

Все, что приводит к затратам значительного количества времени, будет обнаружено этим методом, и рекурсия сделает это. не беспокойтесь об этом.

Люди, кажется, решают подобные проблемы одним из двух способов:

  1. Прежде чем что-либо делать, попробуйте получить точные измерения.

  2. Просто найдите что-то большое, от чего вы можете избавиться, вырвите его и повторите.

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

2
ответ дан 8 December 2019 в 04:31
поделиться

Мой список профилировщиков включает ANTS, dotTrace и AQtime.


Однако, при более внимательном рассмотрении вашего вопроса, мне кажется, что вам следует одновременно провести некоторое модульное тестирование раз вы делаете профилирование. Возможно, начните с быстрого сканирования общей производительности, чтобы увидеть, какие области требуют наибольшего внимания. Затем начните писать несколько модульных тестов для этих областей. Затем вы можете запустить профилировщик во время выполнения этих модульных тестов, чтобы получить согласованные результаты.

4
ответ дан 8 December 2019 в 04:31
поделиться

В Visual Studio Team System есть запеченный профайлер in, это далеко не идеально, но для простых приложений вы можете заставить его работать.

Недавно я добился наибольшего успеха с EQATECs бесплатным профилировщиком или с помощью моего собственного крошечного класса профилирования там, где это необходимо.

Кроме того, в прошлом было довольно много вопросов о профилировщиках, см. http://www.google.com.au/search?hl=ru&q=site:stackoverflow.com+.net+profiler&btnG= Google + Search & meta = & aq = f & oq =

1
ответ дан 8 December 2019 в 04:31
поделиться

Похоже, вам нужен профилировщик кода. http://en.wikipedia.org/wiki/Code_profiler#Use_of_profilers

Я не знаю, какие профилировщики лучше всего подходят для C #, но я наткнулся на эту ссылку после быстрого поиска в Google, в котором есть список бесплатных предложения с открытым исходным кодом. Я уверен, что кто-то другой знает, какие из них стоит рассмотреть :)

http://csharp-source.net/open-source/profilers

1
ответ дан 8 December 2019 в 04:31
поделиться

Несмотря на название этой темы, я должен утверждать, что «лучший» способ субъективен, мы можем предложить только возможные решения.

У меня был опыт использования Redgate ANTS Performance Profiler , который покажет вам узкие места в вашем приложении. Это определенно стоит проверить.

1
ответ дан 8 December 2019 в 04:31
поделиться

Никогда не забывайте Совет Рико Мариани о том, как провести хорошее исследование производительности.

0
ответ дан 8 December 2019 в 04:31
поделиться

Вы также можете использовать счетчик производительности для приложений asp.net.

0
ответ дан 8 December 2019 в 04:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: