gpt4 book ai didi

c++ - 如何独立于所用机器测量性能

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:59:04 26 4
gpt4 key购买 nike

我有一个表现良好的例程。但是,我不得不对其进行更改。该更改提高了例程的精度,但损害了性能。

例程是大量的数学计算,可能是 CPU 债券(我仍然需要对此进行更严格的测试,但我有 99% 的把握)。它是用 C++ 编写的(编译器是 Borland C++ 6)。

我现在想测量例程的性能,首先我考虑测量执行时间,但我认为这是一种有缺陷的方法,因为可能会有更多事情发生。

然后我遇到了这个话题:Techniques to measure application performance - Stack Overflow .我喜欢通过 MFlops 进行测量的想法。

我的老板建议尝试通过 cpu 时钟周期使用某种测量,因此测试将与机器无关,但是,我认为这种方法属于 MFlops 测试。

在我看来,衡量这两个方面(执行时间和 MFlops)是可行的方法,但我想听听 stackoverflow 专家的意见,你们是怎么想的。

衡量称为 CPU 绑定(bind)的例程性能的方法是什么?

最佳答案

如果您的应用程序受内存限制,CPU 时钟周期也没有那么重要。在更快的 CPU 上,您只会花费更多的 CPU 周期来等待相同的缓存未命中。 (数学应用程序可能不受 I/O 限制)。

另一个问题是,特定指令序列的时钟周期数仍会因架构而异(甚至包括 Intel Core1/Core2 之间)。因此,作为性能的绝对衡量标准,一个 CPU 上的时钟周期几乎算不上改进。

我认为作为一种衡量标准,它们实际上更糟。与时间不同,用户不关心周期。这对于现代多核 CPU 尤其重要。使用两倍周期数和 3 个内核的“低效”算法将在 67% 的时间内完成。用户可能会喜欢这样。

关于c++ - 如何独立于所用机器测量性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/986847/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com