2010-01-22 49 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 
     } 
    } 

我走之前太遠,在那裏我應該知道的任何潛在的缺陷?這些方法的廣泛使用(即僅添加一行到彙編信息)會導致嚴重的(就定時數據的有效性而言)性能問題?

回答

2

對於性能檢測,您應該瞭解該方面的開銷。這個開銷在以前版本的PostSharp中很重要,但在PostSharp 2.0中已經有了很大的改進。

關於您的代碼,我發現寫入文件的危險可能會很慢並且線程不安全。當然,這取決於你的背景和目標。

性能計數器可能是一個很好的選擇。

相關問題