问题标签 [benchmarking]

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 投票
6 回答
68121 浏览

python - 为什么在 Python 中循环 range() 比使用 while 循环更快?

前几天我在做一些 Python 基准测试,遇到了一些有趣的事情。下面是两个或多或少做同样事情的循环。循环 1 的执行时间大约是循环 2 的两倍。

循环 1:

循环 2:

为什么第一个循环这么慢?我知道这是一个微不足道的例子,但它激起了我的兴趣。range() 函数有什么特别之处,使其比以相同方式递增变量更有效吗?

0 投票
2 回答
455 浏览

performance - 优先考虑 Erlang 节点

假设我有一个由 n 个Erlang节点组成的集群,其中一些可能在我的 LAN 上,而另一些可能使用 WAN(即通过 Internet)连接,有什么合适的机制来满足 a) 不同的带宽可用性/行为(例如,引起的延迟)和b)具有不同计算能力的节点(甚至是内存限制)?

换句话说,我如何优先考虑具有大量计算能力的本地节点,而不是那些具有高延迟并且可能不太强大的节点,或者我如何在理想情况下优先考虑具有高传输延迟的高性能远程节点来专门执行这些进程相对巨大的计算/传输(即每条消息,每时间单位完成的工作)比率?

我主要考虑通过向集群中的每个节点发送一个基准过程以在初始化期间运行来对它们进行基本基准测试,以便可以计算消息传递所涉及的延迟以及整体计算速度(即使用一个节点-特定的计时器来确定节点终止任何任务的速度)。

可能,类似的事情必须重复进行,一方面是为了获得代表性数据(即平均数据),另一方面它甚至可能在运行时有用,以便能够动态调整改变运行时条件。

(在同样的意义上,人们可能希望优先考虑本地运行的节点而不是其他机器上运行的节点)

这意味着有望优化内部作业调度,以便特定节点处理特定作业。

0 投票
4 回答
491 浏览

mysql - 开源数据库软件的任何正式基准测试?

有没有开源数据库,特别是sqlite,MySQL,PgSQL的正式性能和压力测试报告?

我想在服务器中使用 sqlite,因为它结构简单,易于嵌入。但是我找不到关于这些数据库软件性能的任何优点和缺点(通过谷歌搜索和雅虎搜索)。

请建议。

0 投票
2 回答
17884 浏览

networking - 如何测量网络性能(如何对网络协议进行基准测试)

首先,有一点背景。分布式版本控制系统 (DVCS) 有许多不同的比较,它们比较存储库的大小或操作的基准速度。除了测量涉及“克隆”、“拉取”/“获取”或“推送”等网络的操作(命令)速度之外,我还没有找到任何可以对各种 DVCS 的网络性能和使用的各种协议进行基准测试的方法。

我想知道你会如何进行这样的比较;如何测量应用程序的网络性能,或如何对网络协议进行基准测试。我在这里设想还测量性能对网络带宽和网络延迟(ping 时间)的依赖性;一些协议以更多往返交换(协商)的形式牺牲延迟,以发送所需的最少最终“包”。

如果可能的话,我更喜欢只涉及一台计算机的解决方案。我希望看到在 Linux 上运行的开源解决方案。但我也欢迎更通用的答案。

首选操作系统: Linux
首选语言: C、Perl、shell 脚本


可能的测量:

  • 在一个会话中从服务器到客户端以及从客户端到服务器传输的总字节数;这也可以用来测量协议的开销(带宽)
  • 一个事务中的往返次数(连接)(延迟)
  • 网络运行速度(克隆/拉/推所需的时间)与网络带宽和网络延迟(ping 时间)的相关性

如何进行这样的测量(这样的基准)?


2009 年 2 月 6 日添加:
最简单的基准(测量)将是命令的网络版本time,即运行的命令会给我传输的字节数,以及执行给定命令期间的往返次数/网络连接数。


2009 年 9 月 6 日添加:上述网络版本命令解决方案的
示例time假想输出可能如下所示:

请注意,它只是一个示例输出,详细说明了人们可能想要获得的信息。


添加了 09-06-2009:
看起来我想要的一些东西可以使用 dummynet 来实现,工具(最初)用于测试网络协议......

0 投票
1 回答
2725 浏览

apache - apachebench 中止并显示一条奇怪的错误消息

我在 apache 上运行了一个非常简单的 php 文件。然后我对apache进行基准测试,使用

但我收到此错误消息,具体取决于 c(对于 c=1,一切正常):

我在 OSX 10.5.7 上使用 ApacheBench,版本 2.3。

非常简单的 PHP 文件就是这个:

0 投票
5 回答
2037 浏览

.net - 用于分析 .NET 程序的函数执行时间的工具

有哪些工具可用于通过测量函数执行时间和生成图表来分析 .NET 程序,以可视化调用图表中各个点所花费的时间?

0 投票
2 回答
353 浏览

performance - wordpress 性能基准测试

我已经为在线 Flash 游戏建立了一个基于 wordpress 的博客。该网站是 www.nirgame.com。我需要知道哪些工具可用于网站性能测试。抱歉我太天真了,但我来自 C++ 世界,这个 PHP/Apache/MySql 东西对我来说是新的。

0 投票
3 回答
3621 浏览

apache - 如何用延迟对 apache 进行基准测试?

什么是对 apache 进行基准测试的好方法,在来自 unix 命令行的请求之间存在延迟?我从命令行知道的唯一基准测试工具是 ab,它不支持延迟。

0 投票
8 回答
70382 浏览

javascript - 如何对 JavaScript 代码进行基准测试?

是否有一个包可以帮助我对 JavaScript 代码进行基准测试?我不是指 Firebug 和此类工具。

我需要比较我已经实现的 2 个不同的 JavaScript 函数。我对 Perl 的 Benchmark ( Benchmark.pm ) 模块非常熟悉,我正在寻找 JavaScript 中类似的东西。

对 JavaScript 代码进行基准测试的强调是否过火了?我可以只计时一次功能吗?

0 投票
3 回答
1008 浏览

c++ - C++, ways to benchmark improvements in cache locality?

I have an implementation of a class X, that has two pointers to two pieces of information. I have written a new implementation, class Y, that has only one pointer to a struct that contains the two pieces of information together as adjacent members. X's and Y's methods usually only need to manipulate one of the pieces of information, but provide a get() method that returns a pointer to the second piece (in this case class X just returns its pointer to that piece and class Y returns the address of the struct's second member). In normal usage, calls to X's and Y's methods will happen interspersed by calls to get() and doing work on that returned second piece.

I expect that in real life situations there should be a performance improvement, now that the two pieces of information are next to one another in memory in the class Y implementation (because they are adjacent members of a struct), but I'm not seeing any difference in the benchmarks I've written (interspersing calls to X's and Y's methods with doing work on their second pieces in big loops). I suspect this is because everything fits in cache in either case in my tests. I don't want to try this in my real app yet because the semantics of X and Y differ in other subtle ways not related to this optimization and porting the using application will be some work, and these benchmarks are supposed to help justify doing that work in the first place.

What's the best way to observe the difference in performance due to better cache locality? If I do a bunch of dummy work on an array equal to the size of the cache in between calls is that sufficient? Or do I want to do work on an array slightly less than the cache size, so that work on my instances of my class will cause things to fall in and out of cache? I'm not sure how to code something that is robust against compiler optimizations and different cache sizes.