首页 > 解决方案 > 估算“C 语言”代码块的运行时间:可能吗?

问题描述

我想编写一个函数C language,它必须检查数百万个参数,如果它们都为真,函数也返回真,否则,它返回假。

然而,估计这个操作的时间很重要,这意味着我们需要知道它需要多少毫秒。(大概的时间就足够了。)我们需要知道这个时间才能知道这个函数的吞吐量

注意:此参数是从本地文件中读取的,我们使用的是普通计算机。

标签: ctimethroughput

解决方案


与其估计时间,不如测量它。现代 CPU 架构执行的优化非常复杂,数据排序的简单更改可能会将函数的运行时间增加六倍或更多

在您的情况下,运行一个实际的基准测试非常重要:您检查的所有参数都需要放在内存中与实际程序中相同的位置,并且您的代码应该以相同的顺序检查它们。这样你就会看到缓存的效果。由于您的函数是全有或全无,分支预测对您的代码几乎没有影响,因为在循环退出之前预测最多会失败一次。

由于您正在从文件中读取参数,因此在测试程序中使用与您计划在实际程序中使用的 API 相同的 API 非常重要。根据平台的不同,I/O API 可能会表现出显着的性能差异,因此您的测试代码应该测试您计划在生产中使用的内容。


推荐阅读