簡體   English   中英

是否可以使用屬性計算C#中方法的執行時間?

[英]Is it possible to calculate the execution time of a method in C# with attributes?

是否有C#屬性(用於方法)來計算此方法的執行時間? 還有另外一種方法嗎?

您可以使用面向方面編程來執行此操作。 從PostSharp看這個例子: http//www.sharpcrafters.com/solutions/performance

這里的技巧是定義在編譯時注入代碼的行為。 一個用例是為您需要的方法添加時序。

還有其他方法:您可以使用VS Profiler來檢查執行特定方法的次數和時長。

或者您可以使用屬性來分析性能的第三方庫,請參閱此相關主題什么是一些好的.NET Profilers?

您可以使用Timer ,在函數調用之前啟動它,然后在方法完成后停止它。 然后以更好的形式輸出時間!

要么

如果您不想編寫手動代碼,請查看Visual Studio ProfilersSO - Best Profilers

如果您想編寫一些測試代碼來分析各種函數或其中的部分,您可以使用System.Diagnostics.Stopwatch來跟蹤已用時間。 像這樣:

public void DoSomething(){
  Stopwatch stopWatch = new Stopwatch();
  stopWatch.Start();

  //stuff you want to time

  stopWatch.Stop();

  System.Console.Writeln(String.Format("Total Ticks: {0}", stopWatch.ElapsedTicks))
}

如果你想做更普遍的事情(即計算程序的哪些部分很慢),那么使用像其他一些答案建議的分析器。

餡餅簡單:

  1. 使用分析器
  2. 對於生產測量,請使用性能計數器

像這樣的東西:

  var oldTime = DateTime.Now;
  //your code here
  var resultTimeSpan = DateTime.Now - oldTime;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM