Анализ потока кода между сборками - PullRequest
2 голосов
/ 20 декабря 2011

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

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

Создание диаграммы последовательности, вероятно, поможет, но, опять же, оно может распространяться от Земли до Марса).

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

(Я пробовал встроенный профилировщик для VS - это хорошо, но анализ результатов занимает много часов, на самом деле показывает горячие точки и снова не «восстанавливает» реальную логику.)

Ответы [ 2 ]

3 голосов
/ 12 января 2012

NDepend может быть полезным для вас, поскольку вы выполняете анализ кода.

Поскольку вы упомянули, что вы хотите сгенерировать диаграмму последовательности из выполняющегося кода ... Корпоративный архитектор из систем Sparx может сделать это.Ознакомьтесь с руководством .

Эта ссылка может быть полезна и вам.

Если у вас есть немного денег, вы можете использовать RedGate Develper Bundle для .NET Он имеет профилировщик производительности, профилировщик памяти и т. Д. Он также имеет ознакомительную версию.

Есть и другие более дешевые альтернативы для профилировщиков.

0 голосов
/ 03 января 2012

Существуют более продвинутые приложения-профилировщики, чем Visual Studio Profiler, но, если вы не используете логику для отдельных доменов приложений или не можете легко сгруппировать их по-другому, для изучения подобных проблем всегда потребуется значительное количество времени.

Visual Studio Ultimate имеет возможность генерировать матрицы зависимостей и диаграммы последовательности из вашего кода.VisualNDepend может сделать это также.Но хотя они дадут вам представление о статическом поведении кода, это не поможет вам выяснить поведение его во время выполнения.

Анализ кода (в Visual Studio Premium и Ultimate) содержит наборправила на основе нового механизма анализа DataFlow.Для них можно написать пользовательские правила, но это не самое простое, если не сказать больше.

Возможно, вы сможете объединить IntelliTrace с результатами данных Profiler, чтобы точно определить

...