#OF. Монитор ** Описание проекта **
Данный проект использует библиотеку mdbgeng от Microsoft для создания моментальных снимков (.Net) приложений в реальном времени, а также предоставляет программу для анализа стеков вызовов. Программа группирует вызовы с одинаковым стеком вызовов и одним и тем же потоком, что помогает выявить наиболее часто вызываемые и самые затратные по времени методы.
Каждый моментальный снимок создается как отдельный файл, анализируемый программой. Одновременно программа может анализировать все файлы в папке Input, группируя их по потокам и стекам вызовов. Встречающиеся в разных файлах одни и те же методы указывают на то, что время выполнения этих методов приближено к интервалу между моментальными снимками.
** Программное обеспечение **
Проект состоит из трёх частей: библиотечного файла, консольной программы для создания моментальных снимков стеков вызовов и консольной программы для анализа созданных моментальных снимков. Программа для создания моментальных снимков должна быть скомпилирована в версию bk_64-бит или 32-бит в зависимости от типа целевой системы и запущена с правами администратора; в противном случае будет выдано сообщение об ошибке.
** Как тестировать проект создания моментальных снимков? **1. Запустите .NET целевое приложение, например ASP.NET сайт или консольное приложение. 2. Узнайте ID процесса .NET приложения. (Если это ASP.NET приложение, вам потребуется узнать ID процесса w3wp.) 3. Настройте ID процесса в поле PID файла OF.Monitor.exe.config. 4. Убедитесь, что существует папка Input в той же директории, где находится OF.Monitor.exe. По умолчанию выходные данные будут помещены в эту папку. Также убедитесь, что целевое .NET приложение и OF.Monitor.exe имеют одну и ту же платформу (оба являются 32-битными или 64-битными); если нет, вам придётся выбрать x86 или x64 в "Свойства проекта > Генерация > Целевая платформа" и заново скомпилировать OF.Monitor. 5. Запустите OF.Monitor.exe с правами администратора, чтобы получить стек вызовов для указанного ID процесса. А. Если во время выполнения возникает следующая ошибка, значит, платформа .NET целевого процесса отличается от платформы OF.Monitor.exe. Вам потребуется заново скомпилировать проект для 32-битной или 64-битной платформы. Незавершённое исключение: System.Runtime.InteropServices.COMException: Операция не удалась из-за того, что объект отладки и отладчик находятся на неподдерживаемых друг другом платформах. (Исключение произошло из HRESULT:0x80131C30) Б. Если во время выполнения возникает ошибка "Незавершённое исключение: System.ArgumentException: Значение вне диапазона", возможно, что процесс с указанным ID не найден, либо это не .NET приложение, либо целевое .NET приложение завершило свою работу. Необходимо отметить, что при создании моментального снимка стека вызовов следует избегать закрытия OF. Monitor.
В ходе выполнения он будет проходить по всем файлам в подкаталоге Input и обрабатывать их. Результаты будут выводиться в виде текста на консоль, который можно переадресовать в текстовый файл для удобства просмотра. Выходные данные разделены на две части:
Результаты анализа также содержат количество вызовов каждого метода в конкретном стеке вызовов процесса. Например, если какой-то процесс выполнял крупный запрос, то при первом дампе стек вызовов был A->B->C, а при втором дампе — A->B, то в результате анализа будет указано, что метод A вызывается дважды, метод B — дважды, а метод C — один раз. Это указывает на то, что методы A и B занимали время между двумя дампами.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )