Меня интересует профилировщик, способный подключиться к службе .NET Windows, которая запускается при запуске Windows. Я пробовал dotTrace, YourKit и профилировщики AutomatedQA без везения. Все они показывают, что службы Windows затенены и поэтому я не могу профилировать мою службу. Может ли кто-нибудь предложить рабочий профайлер?Профилирование службы Windows, которая запускается при запуске
ответ
MemProfiler поддержка для присоединения к процессу и услугам профиля. Кроме того, вы можете фактически импортировать дампы сбоев Windows, которые могут быть полезны, если вы получаете исключения из памяти.
Другим способом для этого является вызов API-интерфейса профилировщика из кода. (Предположим, что ваш профилировщик поддерживает это)
dot trace имеет api для профилирования. Лучше всего было бы назвать api из вашего кода. Версия EAP (dot trace 4.0), похоже, позволяет мне выбрать запущенный сервис, но я не уверен, что он запускает новый экземпляр или нет.
Можно ли запустить службу Windows в среде Visual Studio или какой-либо IDE с помощью кнопки «Пауза»? Если да, то this technique расскажет, что он делает, и где вы можете плодотворно его оптимизировать. (Он работает в любой среде, а не только в Linux.)
См. my suggestion относительно того, как вы можете добавить переключатель -foreground
в сервис, чтобы упростить его запуск в виде обычной программы, что упрощает настройку и отладку , Или, альтернативно, добавьте некоторый код при запуске своей службы, чтобы заняться оживлением до тех пор, пока не будет выполнено какое-либо условие (например, файл существует или задан параметр реестра), что должно дать вам столько времени, сколько необходимо для присоединения профилировщика.