В наших приложениях VB6 мы добавили несколько полезных функций для отслеживания количества времени, затраченного на функцию. Мы сделали это для отслеживания узких мест в производительности.Продолжительность отслеживания вызовов функций в vb.net
В основном, как это работает, были две служебные функции: StartTickCount() и EndTickCount(). Вы передавали бы имя функции в каждом, и функции использовали бы словарь для получения количества тиков при вызове StartTickCount(), а затем вычитали количество тиков при вызове EndTickCount(). Это не было совершенным, потому что это, конечно, не учитывало, что призывы к подсчету отсчетов требуют времени и т. Д., Но в основном это сработало для наших целей. Боль в стыковой части было убедиться, назвать StartTickCount() в начале каждой функции и EndTickCount() в каждой точке выхода:
Private Function SomeFuction() as String
' indicate the function started
StartTickCount("MyClass.SomeFunction")
' some logic that causes the function to end
If (some logic) Then
EndTickCount("MyClass.SomeFunction")
Return "Hello!"
End If
' final exit point
EndTickCount("MyClass.SomeFunction")
Return "World"
End Function
Во всяком случае, есть ли функциональность встроенной, либо через VS 2010 отладчиком или в пространстве имен System.Reflection
, чтобы сделать что-то подобное в VB.NET?
В основном, я хочу, чтобы регистрировать количество раз, когда вы вызываете каждую функцию, общее количество времени, затраченное на эту функцию, среднее количество секунд, затраченных на эту функцию, и максимальное количество времени, затрачиваемого на один вызов в этой функции.
Я могу, конечно, написать это вручную (поскольку мы уже делали это раз в VB6), но если есть существующие инструменты, чтобы упростить их, я бы предпочел использовать их.
Рассматривали ли вы с помощью профилировщик? –
Похоже, что профайлер будет работать, по крайней мере, при работе в режиме отладки. Но нам также может потребоваться проверить производительность на сервере клиентов (у которого не было бы инструментов VS2010), так же есть ли какие-либо варианты кодирования? –