首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何计算std dev,quartile,...对代码进行基准测试?

如何计算std dev,quartile,...对代码进行基准测试?
EN

Stack Overflow用户
提问于 2013-08-29 23:01:59
回答 4查看 575关注 0票数 0

我编写了一些函数来对函数/代码段进行基准测试。我是这样做的:

代码语言:javascript
复制
start = timer
for(1 second)
   call fun
   iterations++
stop = timer

然后我有一个平均(平均)时间:(停止-开始/迭代),对吗?

单个调用太‘短’而无法测量,那么我如何从这种类型的测量中进行计算,std dev,quartile,等等?

EN

回答 4

Stack Overflow用户

发布于 2013-08-29 23:10:28

标准差和四分位数都处理组中值的分布。

只有一种衡量标准,这些就变得微不足道或毫无意义。因为只有一个测量值,所以该值是平均值、最小值、最大值和模式。由于所有测量值都没有偏离平均值,因此方差和标准差为零。

票数 4
EN

Stack Overflow用户

发布于 2013-08-29 23:13:13

你必须找到一种足够精确地测量时间的方法。您将需要对fun进行单独调用的时间,以便获得任何有意义的标准差等。

This question可能包含有用的提示,我相信也有相当多特定于平台的高精度计时器。

票数 1
EN

Stack Overflow用户

发布于 2013-08-30 04:04:06

通常,由于处理速度和获取微秒和毫秒级分辨率的困难,大多数性能测量都是基于大量迭代。

例如:

  1. Read start time
  2. for 1,000,000 iterations do
  3. perform Read end time。

持续时间是结束时间-开始时间。平均执行时间是持续时间除以迭代次数。

使用平均时间还有其他原因:操作系统中断,数据缓存未命中,可能还有外部因素(如硬盘访问)。

为了更精确的测量,你必须使用一个“测试点”和一个示波器。在迭代之前将高脉冲写入测试点,然后写入低脉冲。设置示波器以捕获持续时间。如果您的示波器具有统计功能和存储,请将测试点写入移动到函数执行之前和之后。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18514489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档