1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/fastdev-OF.Moniter

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

#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.

Как тестировать анализ файла Dump1. Копируйте файлы, сгенерированные в предыдущем шаге, в подкаталог Input директории, где находится процесс OF.Monitor.Analysis.exe, а затем запустите этот процесс.

  1. В ходе выполнения он будет проходить по всем файлам в подкаталоге Input и обрабатывать их. Результаты будут выводиться в виде текста на консоль, который можно переадресовать в текстовый файл для удобства просмотра. Выходные данные разделены на две части:

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

Результаты анализа также содержат количество вызовов каждого метода в конкретном стеке вызовов процесса. Например, если какой-то процесс выполнял крупный запрос, то при первом дампе стек вызовов был A->B->C, а при втором дампе — A->B, то в результате анализа будет указано, что метод A вызывается дважды, метод B — дважды, а метод C — один раз. Это указывает на то, что методы A и B занимали время между двумя дампами.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/fastdev-OF.Moniter.git
git@api.gitlife.ru:oschina-mirror/fastdev-OF.Moniter.git
oschina-mirror
fastdev-OF.Moniter
fastdev-OF.Moniter
master