C# 性能回归测试的最佳工具是什么

C# 性能回归测试的最佳工具是什么,c#,java,unit-testing,performance,C#,Java,Unit Testing,Performance,我们的组织正在寻找一种工具来帮助对每个版本进行性能测试。我们推出了一整套新软件,我们希望确保关键功能的性能自上一次产品发布以来没有降低。我们有C#和Java的代码。这可以是以下任何内容: 当我运行此函数时,所需时间

我们的组织正在寻找一种工具来帮助对每个版本进行性能测试。我们推出了一整套新软件,我们希望确保关键功能的性能自上一次产品发布以来没有降低。我们有C#和Java的代码。这可以是以下任何内容:

  • 当我运行此函数时,所需时间<2秒
  • 当我运行这组函数时,总时间<5秒
  • 等等 最好使用我们的基本单元测试持续集成(nunit、junit、TeamCity)和手写的性能检查来完成这项工作,还是有特定的工具可以帮助关注这一领域


    有什么建议吗?

    我们使用的是python编写脚本+大量日志记录来生成XML日志,然后将其导入电子表格。

    我一直在修补一个名为“Basher”的工具,它允许您编写“任务”,这些任务由系统拾取,然后运行一段可配置的时间(例如,允许JVM预热),然后执行运行,记录任务执行时间、平均值等

    1.0版本已经悄无声息地出现了一段时间,如果您想看一看,可以在

    trunk版本包含一些改进—有maven集成,在pom.xml中指定了配置,报告框架的基本框架,等等。

    在我的项目(倾向于使用Spring)中,我使用AOP和


    虽然您可能不使用Spring,但它绝对是值得一看的好代码,并且可以基于您自己的版本。我发现AOP非常适合这种情况,因为它不会扰乱实际的函数调用。如果您有一个分层应用程序,那么您可以将这些性能监视器放在每个级别上。(通常对于我的Web应用程序,我将其作为数据访问层,以便监控数据库查询性能。)

    如果应用程序可以远程访问,则可以尝试使用soap ui:

    它将为您提供以下所有类型的统计信息:


    我不知道有什么工具,我对您将在这里得到的答案很感兴趣。但是单元测试不会是这样做的地方,因为性能取决于它们运行的位置。例如,在开发人员的机器上,测试可能会失败,因为开发人员有其他进程在后台运行。