是否有正确的功能基准测试方法? [复制]

Posted

技术标签:

【中文标题】是否有正确的功能基准测试方法? [复制]【英文标题】:Is there the right way of function benchmarking? [duplicate] 【发布时间】:2014-11-09 23:16:05 【问题描述】:

我想问一下,哪种测量函数执行所需时间的方法被认为是最好的? 只是好奇。 谢谢。

【问题讨论】:

请注意,添加基准测试代码会改变代码的性能特征。特别是如果你的函数比gettimeofday 快。始终确保您查看组装以确保您正在计时您认为您正在计时。 【参考方案1】:

您可以尝试使用 rdtsc();它是准确的,也许是最快的和跨平台的(但仅适用于 x86 架构)。例如,在 Windows 中:

#include <intrin.h>
uint64_t rdtsc()

return __rdtsc();

【讨论】:

它不准确(除非正确序列化),不跨平台(并非所有内容都是 x86),而且总的来说 - 非常有问题。 对,序列化很关键,最好用cpu亲和和所有电源管理关闭...但是为什么你认为它很成问题?:) 我的意思是序列化,以防止 CPU 使用测量部分中的任何指令块对其进行重新排序。也就是说,除了编译器引起的任何移动。

以上是关于是否有正确的功能基准测试方法? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

H5测试方法

golang testing的基本使用

基准测试(python vs. c++ using BLAS)和(numpy)

常用的功能测试点有哪些?

黑盒测试

H5用户登录测试用例