2010-03-12 6 views
0

Я пишу много плагинов, основанных на .NET, для других программ, которые обычно скомпилированы как DLL, которая запускается для запуска собственного приложения. Я использую профилировщик Equatec, который отлично работает, но теперь ему нужно что-то с большим количеством функций, в том числе возможность профилировать использование памяти.Какие профили производительности и/или памяти .NET позволят мне профилировать DLL?

Я опробовал Ant Profiler Red Gate, но насколько я вижу, нет возможности профилировать DLL. Единственный вариант - профилировать EXE.

Так что мой вопрос в том, какие другие инструменты для профилирования доступны, что позволит мне профилировать библиотеку DLL, а не EXE. Я предполагаю, что это потребует ввода кода профиля в библиотеку, как это делает Equatec?

ответ

0

.Net Memory Validator и .Net Performance Validator оба позволяют вам профилировать только DLL.

Вы должны указать DLL, которые вас интересуют (или не интересуют) в разделе «Связанные DLL» в диалоговом окне настроек. Затем запустите приложение - собираются только данные из указанной DLL.

Полное раскрытие информации: Я инженер-программист в компании, которая создает эти инструменты.

1

Да, это действительно работает. DLL - это просто код кода, он объединяется с кодом в EXE. DLL не может «владеть» какой-либо памятью, как это делает AppDomain. Однако вы можете узнать, сколько времени потрачено на код, который поступает из DLL.

Если вы пишете тестовую программу, которая сама по себе не делает каких-либо основных распределений памяти, а вызывает вызовы методов классов в DLL, вы можете без проблем связать использование памяти с DLL. Написание такой тестовой программы и ее сходство с тем, как DLL-код используется в реальной программе, однако не так просто.

0

Это больше не может быть для вас, но я думал, что я положил его здесь для потомства, RedGate Муравьи профайлер действительно позволяет профилировать один DLL с помощью настраиваемого фильтра:

http://www.red-gate.com/supportcenter/content/ANTS_Profiler/articles/profiling_single_dotnet_assembly

Мы настроили профилирование производительности «CoolApp» обычным способом, используя мастер проекта ANTS Profiler 3. Последний экран мастера - это та точка, в которой мы можем настроить проект, чтобы ограничить профилирование только одной библиотекой. Мы указываем, что мы хотим использовать настраиваемый фильтр, чтобы ограничить области приложения, которые будут профилироваться.

Мы редактируем настраиваемый фильтр и указываем, что нас интересует только профилирование определенного пространства имен, как показано ниже. В этом случае мы настроили фильтр, который заставит ANTS Profiler использовать только методы профилей, которые являются частью пространства имен RedGate.Library1. Это именно то, чего мы хотим, и теперь мы готовы начать профилирование.

Теперь мы можем продолжить профилирование в обычном режиме. Однако, когда мы получаем результаты профилирования производительности, либо путем моментального снимка, либо путем закрытия приложения, они будут содержать только данные о методах в RedGate.Library1.dll.

Включенный текст с веб-сайта в случае, если ссылка когда-либо гаснет.

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

  • Нет связанных вопросов^_^