Библиотека профилирования для .NET - PullRequest
0 голосов
/ 12 ноября 2009

Редактировать: Я НЕ спрашиваю о способе реализации библиотеки профилирования, я спрашиваю, есть ли одна (желательно бесплатная) там .

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

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

Я хочу иметь возможность определить что-то вроде:

Mon.StartScenario("ClientReportsTime");
// Get All clients
//...
Mon.CheckPoint(); // You should be able to see memory ussage 
                 //and time taken to reach this point.
// Extract information
//..
Mon.CheckPoint();
// Finished!!
Mon.StopScenario("ClientReportsTime");

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

Ответы [ 3 ]

1 голос
/ 12 ноября 2009

А как насчет использования счетчиков производительности? Это будет работать, поскольку вы определяете счетчик производительности для сценария, а затем используете доступные методы (такие как Increment, IncrementBy и т. Д.) Для записи контрольных точек. Для получения дополнительной информации см .: http://msdn.microsoft.com/en-us/library/system.diagnostics.performancecounter(lightweight).aspx.

1 голос
/ 15 ноября 2009

Если у вас был выбор между

  1. Что-то, что даст вам точное время возникновения проблем, но только неточно определит их, или

  2. Что-то, что даст вам точное местоположение проблем, но только неточно определит их время,

что бы вы предпочли?

Этот метод выполняет последнее.

1 голос
/ 12 ноября 2009

Вы можете посмотреть информацию о процессе для своего приложения и, возможно, записать дополнительную информацию из WMI.

К сожалению, это на самом деле не дает вам много времени для продолжения: (

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...