2010-01-22 5 views
2

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

public class TimerAttribute : OnMethodBoundaryAspect 
    { 
     //some data members 
     //... 

     public override void OnEntry(MethodExecutionEventArgs eventArgs) 
     { 
      //write method entry time to file 
     } 

     public override void OnExit(MethodExecutionEventArgs eventArgs) 
     { 
      //write method exit time to file 
     } 
    } 

Прежде чем идти слишком далеко, есть ли потенциальные проблемы, я должен быть в курсе? Широкое использование (т. Е. Просто добавление строки в assemblyinfo) этих методов приведет к серьезным (с точки зрения срочности данных синхронизации) проблемам производительности?

ответ

2

Для измерительных приборов вы должны знать о служебных целях. Эти накладные расходы были важны в предыдущих версиях PostSharp, но в PostSharp 2.0 значительно улучшились.

Что касается вашего кода, я вижу опасность того, что запись в файл может быть медленной и небезопасной. Конечно, это зависит от вашего контекста и целей.

Счетчики производительности могут быть хорошей альтернативой.