2014-01-06 64 views
1

我有一個asp.net應用mvc4,其中我有這個類測試響應時間

public class Arbre 
{ 
    public int id_resp = -1; 
    Admin notre_admin = new Admin(); 
    List<Task> _la_liste = new List<Task>(); 

    public Arbre(int id) 
    { 
     id_resp = id; 
    } 

    public List<Task> GetTasksOfExpert(int id_user) { 
     List<int> liste = notre_admin.GetTasksOfExpert(id_user); 
     List<Task> liste_finale = new List<Task>(); 

     for (int i = 0; i < liste.Count; i++) { 
      liste_finale.Add(notre_admin.GetTaskListByAffaire(null).Find(x => x.Id_tache == liste[i])); 
     } 

     return liste_finale; 
    } 

    public List<Task> GetTasksOfChef(int id_user) 
    { 
     List<int> liste = notre_admin.GetTasksOfChef(id_user); 
     List<Task> liste_finale = new List<Task>(); 
     for (int i = 0; i < liste.Count; i++) 
     { 
      liste_finale.Add(notre_admin.GetTaskListByAffaire(null).Find(x => x.Id_tache == liste[i])); 
     } 
     return liste_finale; 
    } 

} 

我想補充一個測試,幫助我知道的大概時間爲每個方法來優化我的代碼。

  • 我該怎麼做?
  • 單元測試是否可以做到這一點?

回答

1

有一些準備好的工具可以幫助您達到目的。 我最喜歡的一個是miniprofiler

我想給它一個去看看它是否適合您的需求。

2

有許多商業產品可供您分析您的代碼(來自RedGate的Ants Profiler是一個突出的想法)。由於Marcom提到MiniProfiler是相當不錯的(而且它是免費的並且很容易設置和使用)。

其他更復雜的替代方法是調查AOP並實現圍繞您的方法的功能,以便記錄持續時間。我使用了Unity的AOP功能來實現類似的功能(與Log4Net結合使用)。

你可以使用一種形式的單元測試,但這比單元測試更多的是integration test。 (例如在您的集成測試中,您可以設置一個計時器並測量方法執行持續時間)。集成測試可能運行緩慢,您不一定能從生產系統獲取性能指標。