问题标签 [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.
unix - 在 time(1) 的输出中,“real”、“user”和“sys”是什么意思?
在时间输出中是real
什么意思user
?sys
对我的应用进行基准测试时,哪一个有意义?
c++ - 运行 K 次基准代码的 Unix 命令
假设我有一个以这种方式在 Unix 中执行的代码:
我的问题是有没有一种方法可以计算我的代码执行 K 次的运行时间。例如,K 的值 = 1000。
我知道 Unix“时间”命令,但只执行了 1 个实例。
c - 耗尽 Intel Core 2 Duo 的指令流水线?
我正在为 C 中的一些非常短的操作编写一些微基准测试代码。例如,我正在测量的一件事是根据传递的参数数量调用一个空函数需要多少个周期。
目前,我在每次操作之前和之后使用 RDTSC 指令进行计时,以获取 CPU 的循环计数。但是,我担心在第一个 RDTSC 之前发出的指令可能会减慢我正在测量的实际指令。我还担心在第二个 RDTSC 发布之前,完整的操作可能还没有完成。
有谁知道在发出任何新指令之前强制所有正在进行的指令提交的 x86 指令?我被告知 CPUID 可能会这样做,但我一直无法找到任何这样说的文档。
benchmarking - 使用 AB 进行负载测试...假失败请求(长度)
为了我自己的好奇心,在我的服务器上进行一些负载测试,我运行了:
这会打开 50 个保持活动连接,持续 200 秒,然后用 index.php 请求猛击我的服务器
在我的结果中,我得到:
请注意 32951“失败”请求。我无法弄清楚这一点。
随着测试的运行,我可以从我的家用电脑完美地访问我的网站,尽管页面底部的页面加载时间报告为 0.5 而不是通常的 0.02。但是,我从来没有一次失败的请求。
那么为什么 AB 会报告一半的连接失败呢?在这种情况下,“长度:”是什么意思?
perl - 施瓦茨变换什么时候有用?
在阅读“ Intermediate Perl ”一书时,我注意到了关于 Schwartzian 变换的部分并尝试了练习中的示例(9.9.2),但注意到多次运行导致变换比正常排序花费更多时间。此处的代码根据文件大小对 windows\system32 目录中的文件进行简单排序 -
输出是 -
我的理解是,由于文件操作(-s)需要在 testB 案例中一遍又一遍地重复,它的运行速度应该比 testA 慢很多。输出虽然偏离了该观察。我在这里想念什么?
java - 为什么使用 PyStone 进行测试时 Jython 的行为不一致?
我最近一直在玩 Jython,并决定用 pystone 做一些快速而肮脏的基准测试。为了获得参考,我首先测试了 cPython 2.6,循环次数越来越多(我认为这可能是相关的,因为 Jython 应该在一段时间后才开始从 JIT 中获利)。
如您所见,cPython 的行为始终如一:完成测试所需的时间与循环次数成线性增加。知道了这一点,我开始测试 Jython。
在第一次运行中,与它的 C 兄弟相比,Jython 运行得相当糟糕。当增加循环数时,它开始感觉更好,接近 cPython,就像我最初的假设所预测的那样。请注意,循环的数量增加了 10 倍,但 Jython 仅用了大约 5 倍的时间来完成它们。所以,正如你想象的那样,我期待 Jython 会在最终测试中真正发挥作用。然而,令我非常失望的是,它确实很糟糕:比最初的运行速度慢了两倍多。
您的假设是什么:为什么 Jython 的行为方式如此不一致?可能是 GC 在某个时刻开始了,并且花费了很多时间?我查看了 PyStone 的代码,垃圾收集似乎没有被关闭,但我希望 Java 的 GC 至少和 Python 的一样好......你认为这种减速是永久性的,还是会消失在增加循环次数后的某个时候?Jython 在真正长时间运行的进程中应如何表现?
编辑:不幸的是,java.lang.OutOfMemoryError
如果我将循环数增加到 200 万,我会得到......
(当然,Jython 仍处于测试阶段,因此在最终版本中应该会变得更好。)
我正在使用 Jython 2.5b1 (trunk:5903:5905, Jan 9 2009, 16:01:29), Java(TM) SE Runtime Environment (build 1.6.0_07-b06-153) 和 Java HotSpot(TM) 64-Bit MacOS X 10.5 上的服务器 VM(内部版本 1.6.0_07-b06-57,混合模式)。
感谢您的回答。
windows - 如何在 Windows 上获得可重复的受 CPU 限制的基准测试运行时?
我们有时必须在我们想要测量运行时间的地方运行一些 CPU 密集型测试。测试持续大约一分钟。问题在于,从运行到运行运行时变化很大(+/- 5%)。我们怀疑这种变化是由系统上其他应用程序/服务的活动引起的,例如:
- 在空闲时间做家务的应用程序(例如 Visual Studio 更新 IntelliSense)
- 文件系统索引器
- ETC..
有什么技巧可以让我们的基准测试时间更稳定?
目前我们最小化所有其他应用程序,以“高于正常”优先级运行测试,并且在运行测试时不触摸机器。
hardware - 如何证明代码没有损坏,但硬件损坏了?
我敢肯定它到处重复。您可以“感觉”网络速度慢,或者机器速度慢或其他什么。但是服务器/机箱日志没有显示任何内容,因此 IT 不相信您。你做什么工作?
您的回归花费了两倍的时间...但这还不够好吧您使用 dd 等传输 100 GB,但是...这还不够。好的,您将服务器放置在不同的机箱中 2 周,它工作正常……但是……这还不够……
那么如何让 IT 更换机箱?
更具体地说:是否有任何套件可以在两个设置上运行(应该是相同的),它可以显示网络/cpu/磁盘访问的差异.. IT 会相信哪个?
iphone - 如何准确计时在 iPhone 上调用函数所需的时间?
我想知道以至少 1ms 的精度向对象发送消息需要多长时间。我该怎么做呢?
benchmarking - 在进行基准测试时,是什么导致 CPU 时间和“经过的实时”之间存在延迟?
我正在使用内置的基准测试模块进行一些快速而肮脏的测试。它给了我:
- CPU时间
- 系统 CPU 时间(实际上,我运行的代码从来没有得到任何结果)
- 用户和系统 CPU 时间的总和(在我的情况下总是与 CPU 时间相同)
- 经过的实时时间
我什至不知道我需要所有这些信息。
我只想比较两段代码,看看哪一段需要更长的时间。我知道一段代码可能比另一段代码进行更多的垃圾收集,但我不确定它会产生多大的影响。
我应该查看哪个指标的任何想法?
而且,最重要的是,有人可以解释为什么“经过的实时时间”总是比 CPU 时间长 - 是什么导致两者之间的滞后?