c - 估计 "C language"代码块 : Is it possible? 的运行时间

标签 c time throughput

我想在 C language 中编写一个函数这样它必须检查数百万个参数,如果所有参数都为 true,则函数也返回 true,否则返回 false。

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

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

最佳答案

与其估计时间,不如测量时间。现代 CPU 架构执行的优化非常复杂,以至于 simple change in the data ordering could increase the running time of your function by a factor of six or more .

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

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

关于c - 估计 "C language"代码块 : Is it possible? 的运行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51909107/

相关文章:

在 Unix 中通过引用值的类型转换调用

Android - NDK - 需要 1+ args 的 Variadic 宏

throughput - iperf如何计算吞吐量

java - 预热高吞吐量 Java 应用程序

c - AVL比较法,正确与否?

python - ZeroMQ:订阅者订阅的主题数量有限制吗?

php - 如何转换时间gmt格式?

iphone - 如何通过 iPhone 设备使用 Time Profiler 仪器

python - 测量 Jupyter Notebook 代码单元的运行时间

networking - 使用 AWK 计算 NS2 中的吞吐量