Как проанализировать использование моего кода на C # (и некоторого кода на SQL) - с точки зрения количества методов / классов и количества их вызовов - PullRequest
0 голосов
/ 01 февраля 2012

На высоком уровне моя проблема -

У нас есть пара приложений, которые имеют миллионы строк устаревшего кода (C # и SQL). Мне нужно выяснить области кода, которые используются чаще всего?

Может быть невозможно найти точные цифры (особенно в приложениях, когда код вызывается на основе действий пользователя в GUI). Однако, чтобы получить некоторые грубые цифры, я должен выяснить несколько мыслей:

1) Найти список классов и методов

2) Узнайте, сколько раз они вызывались из кода. (посредством прямых вызовов методов / делегатов и т. д.)

3) Узнайте все сохраненные функции procs / db (это было бы немного звездно вперед)

4) Узнайте все вызовы сохраненных процедур

Не могли бы вы сообщить мне - если вам известны какие-либо инструменты для достижения этой цели? Или любая другая идея, чтобы получить выше 4 детали? Кроме того, кроме этих других способов сделать этот анализ?

Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 01 февраля 2012

Ранее я использовал ANTS Profiler от Red Gate:

http://www.red -gate.com / продукция / DotNet-разработка / Муравьи-производительность-профайлер /

Это мощный и очень простой в использовании (поставляется с визуальным студийным плагином). 14 дней бесплатно!

0 голосов
/ 01 февраля 2012

Одним из способов достижения этого является использование Аспектно-ориентированного программирования (AOP). Я использовал это ранее в Java с Spring Framework, но раньше не использовал его в проектах .NET.

Вы можете проверить что-то вроде;

http://blogs.msdn.com/b/morgan/archive/2008/12/18/method-entry-exit-logging.aspx

Это даст вам представление о том, как часто вызываются методы. Вам просто нужно будет сопоставить данные в журналах в какой-либо форме, чтобы дать вам общее представление о шаблонах использования кодовой базы.

Edit: Дополнительную информацию об использовании этого метода можно найти в других сообщениях SO;

...