问题标签 [benchmarkdotnet]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
759 浏览

c# - 如何使用 BenchmarkDotNet 对日志基础设施进行基准测试?

我们有一个内部框架来处理我们的日志记录、数据访问、加密......你说的。我想开始比较性能,比如日志功能与其他主流系统,即nlog、log4net、serilog。显然,我将从所有系统都具有的功能开始,例如记录到文件或控制台。

BenchmarkDotNet是否适用于这种情况?我读过的大多数示例和论文都指出了非常紧密的循环中的使用场景,并且主要使用 IO,例如内存和 CPU,而不是磁盘。

作为练习,我编写了一个 xunit 测试来使用 Baseline 功能对控制台的写入进行基准测试,但测试从未完成,我最终终止了该过程,导致我在 SO 上发表了这篇文章。

如果我以错误的方式使用 BenchmarkDotNet,是否还有另一种更符合我想要完成的测试套件?

谢谢你,斯蒂芬

0 投票
0 回答
259 浏览

c# - 如何对锁定语句进行基准测试?

我听说过关于锁“慢”的传言,但直到现在才尝试自己衡量它的性能。对其进行基准测试的正确方法是什么?我使用下面的代码产生一致的结果,但我仍然不确定我是否正确执行。

结果:

0 投票
0 回答
870 浏览

c# - 缺少方法 System.Collections.Immutable.ImmutableArray

我正在使用 BenchmarkDotNet 对 F# 代码进行基准测试。如果我从控制台应用程序运行基准测试,一切正常:

对于一些快速测试,我想从 F# 交互式窗口运行基准测试,在这里我得到以下异常:

从历史上看,这个构造函数似乎被删除并重新添加到 Collections.Immutable 库中,但我使用的是最新版本(1.3),它应该在其中。请参阅:ImmutableArray 在哪里?

此外,这在运行控制台应用程序时工作正常。我认为问题可能出在引用库的版本中,因此我在控制台应用程序中查看了所有与 BenchmarkDotNet 相关的引用,并检查我是否在 FSX 中引用了相同的引用:

我确保在控制台应用程序中使用了确切的版本。似乎 F# 交互式运行时使用的一些库与控制台应用程序曾经使用的一些库不一样。

LinqPad 似乎也出现了类似的问题: https ://github.com/dotnet/BenchmarkDotNet/issues/66

任何提示都会被应用。

0 投票
1 回答
1207 浏览

c# - 与 BenchmarkDotNet 的首次通话

我已经用一个简单的测试类尝试了 BenchmarkDotNet

让它运行

这打印了一个很好的摘要,但我从结果中缺少的是对方法 FirstTimeInitEffect 的第一次调用需要 1 秒。我希望基准工具也能向我展示第一次调用效果。我尝试了一个自定义配置来防止删除异常值,但这并没有成功。我是否使用了错误的工具,或者这超出了工具的范围?

0 投票
2 回答
821 浏览

c# - BenchmarkDotNet 中的异常处理

我有一组用于基准测试的 HTTP 调用:

有时,其中一个请求会由于某种原因而失败。目前,这似乎停止了基准测试,我更希望它以某种方式处理异常。

这可以实现吗?

我想:

  • 从结果中消除失败。
  • 标记他们发生了

奖励积分:

  • 保留失败的度量,以便我们可以看到失败如何影响结果。
  • 能够查看不同类型异常的结果。
  • 在失败时做“事情”(清理一些东西)
0 投票
2 回答
230 浏览

c# - 无法在 Visual Studio Ultimate 2012 上安装 BenchmarkDotNet 0.10.2

我正在尝试将 BenchmarkDotNet 包安装到 Visual Studio 2012 Ultimate 上的一个全新的空白控制台项目中,我收到以下错误日志:

BenchmarkDotNet 看起来非常简单......但它只是不适合我!有没有人遇到过这个问题,或者在 Visual Studio 2012 上解决了这个问题?

注意:它确实安装在 Visual Studio 2015 社区中,但这不是我可以用于实际开发的版本。

0 投票
2 回答
1823 浏览

c# - 仅显示 BenchmarkDotNet 的摘要部分

我正在对一些 .net 框架的东西进行基准测试,我正在使用 .net 框架、C# 和BenchmarkDotNet

我想做的是;我正在编写很多基准测试,我只对报告的摘要部分感兴趣。如何配置 BenchmarkDotNet 以仅显示测试的摘要部分?

这是一个更清晰的屏幕截图;

在此处输入图像描述

0 投票
1 回答
948 浏览

c# - 在 ASP.net MVC 中使用 benchmarkdotnet 获取性能结果

我正在测试基准库来衡量代码的性能。我正在阅读文档。

我无法弄清楚如何打印出基准测试结果。我有一个名为 user 的类,我想使用以下方法。

在 benchmarkdot net 的文档中,使用以下代码打印输出 bechmarks。

在 Asp.net MVC 应用程序获取基准测试结果的情况下,我们可以将这段代码放在哪里获取结果?

这是库的 URL http://benchmarkdotnet.org/GettingStarted.htm

0 投票
1 回答
552 浏览

f# - 如何限制 BenchmarkDotNet 作业仅在特定平台上运行?

我正在编写我过去用本机代码编写的程序的 F# 端口。我使用BenchmarkDotNet来衡量它的性能。我还在应用程序的输出目录中放置了一个本机 EXE。

我将本机程序设置为基准基准,发现它比我的 F# 程序快 5 倍。正如我所料!

但是,本机程序发布在 GitHub 上并仅作为 Win64 二进制文件分发。如果有人使用另一个操作系统试图运行它,它会崩溃。

那么,如何指定这个基准测试只能在 64 位 Windows 上运行呢?

0 投票
2 回答
1150 浏览

c# - 如何从外部代码开始对 .Net 类进行基准测试

我打算使用BenchmarkDotNet来测试各种项目中的一些方法。

因为它可能就像向Benchmark方法中添加属性一样简单,所以我对在我从事的项目中使用它有很大的疑问。

该项目由两部分组成:

  • 本机核心
  • .Net 功能

本机部分初始化 .Net 部分并通过 interop调用其方法。

因此,使用测试项目并添加对 .Net 项目的引用并启动基准应用程序将无法正常工作,因为应首先启动本机代码。

任何想法,如果我能以某种方式跳过本机部分并让BenchmarkDotNet只测试方法?还是我应该寻找另一种基准测试方法?