首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >性能评估过程中的异常值

性能评估过程中的异常值
EN

Stack Overflow用户
提问于 2010-01-24 19:52:12
回答 3查看 107关注 0票数 1

我正在尝试使用Intels RDTSC进行一些性能测量,我在不同的测试中得到的变化相当奇怪。在大多数情况下,我的C基准测试需要3000000 Mio周期,然而,在某些情况下,完全相同的执行可能需要5000000个,几乎是这个数字的两倍。我尽量不让高强度的工作负载并行运行,以便获得良好的性能估计。谁知道这种巨大的时间差异是从哪里来的?我知道中断和事情可能会发生,但我没想到时间会有这么大的变化!

附言:我在一台运行Linux的奔腾处理器上运行它。

谢谢你的反馈,约翰

EN

回答 3

Stack Overflow用户

发布于 2010-01-24 20:33:10

我想答案是这样的:

我尽量不让高强度的工作负载并行运行

在现代操作系统中,您无法对此进行充分的控制。

票数 2
EN

Stack Overflow用户

发布于 2010-01-24 20:00:30

根据this Wikipedia article的说法,RDTSC (时间戳计数器)不能可靠地用于多核系统上的基准测试。不能保证所有内核在时间戳寄存器中具有相同的值。

在Linux上,最好使用POSIX clock_gettime函数。

票数 0
EN

Stack Overflow用户

发布于 2010-01-24 20:53:48

你必须考虑到大多数现代处理器的高速缓存。在您测量长运行时间的情况下,可能另一个进程会清除程序的缓存内容。正如Henk所指出的,在现代操作系统中发生了很多你无法控制的事情。

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

https://stackoverflow.com/questions/2126894

复制
相关文章

相似问题

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