c# - 比较两个函数的负载/性能

标签 c# asp.net c#-4.0 testing benchmarking

Iv 编写了一些 C# 代码,这些代码似乎正在度过美好的时光,但完成了工作。然后我将代码重写为稍微快一点的版本,尽管速度不快(它是一个 cms 管理区域功能,所以对网站来说并不重要)

无论如何,这让我开始思考是否有任何工具/技术可以在 a/b 中对 asp.net/C# 中的函数进行测试

我基本上想提供两个函数,并获取每个函数的执行时间等。

有人遇到过这方面的工具吗?

有谷歌并查看这里但找不到任何用于对两个函数进行基准测试的东西

我想我正在寻找 jsPerf,但在 vs2010 和 C# 中

有什么想法吗?

最佳答案

您可以使用 ANTS Profiler http://www.red-gate.com/products/dotnet-development/ants-performance-profiler/ (付费产品,但他们有试用版)或市场上的其他 Profiler 产品(ANTS、vTune、OptimizeIt、DevPartner、YourKit、dotTrace)。

您也可以通过设置一些单元测试来自行检测这些函数,这些单元测试使用手动秒表检测来比较执行时间(更快且更便宜)来执行这 2 个函数。如果您以后需要更改实现,单元测试还可以确保您不会出现任何性能退化。 http://msdn.microsoft.com/en-us/library/system.diagnostics.stopwatch.aspx

        var stopWatch = new Stopwatch();
        stopWatch.Start();
        var result = CallFunction();
        stopWatch.Stop();
        var executionTime = stopWatch.Elapsed;

关于c# - 比较两个函数的负载/性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11013253/

相关文章:

c# - 无法自动进入服务器。调试器未能在服务器进程中停止

c# - 验证模拟方法使用也被模拟的特定 CancellationTokenSource

c#-4.0 - 将同一接口(interface)的不同实现和配置注入(inject)到不同的客户端

c# - 无法在 C# 中使用 "Microsoft.CrmSdk.XrmTooling.CoreAssembly"连接 Dynamics 365 统一接口(interface)

c# - 为什么 LastName 不显示在下面的 C# 字符串连接运算符中

c# - ASP.NET MVC4 实体验证错误 : User name already taken

asp.net - 为什么 DIV 在此代码中的 ASP 标记内无效?

javascript - Visual Studio 2012 中的 '/' 应用程序中的 ASP.NET 服务器错误

c# - PUT方法可以插入、删除。那么为什么我们必须使用 POST 方法而不是 PUT/DELETE/GET 方法

c# - 如何按日期范围从文件夹中获取所有目录?