2014-01-06 63 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。 (例如在您的集成测试中,您可以设置一个计时器并测量方法执行持续时间)。集成测试可能运行缓慢,您不一定能从生产系统获取性能指标。