c - 估算“C 语言”代码块的运行时间:可能吗?
问题描述
我想编写一个函数C language
,它必须检查数百万个参数,如果它们都为真,函数也返回真,否则,它返回假。
然而,估计这个操作的时间很重要,这意味着我们需要知道它需要多少毫秒。(大概的时间就足够了。)我们需要知道这个时间才能知道这个函数的吞吐量。
注意:此参数是从本地文件中读取的,我们使用的是普通计算机。
解决方案
与其估计时间,不如测量它。现代 CPU 架构执行的优化非常复杂,数据排序的简单更改可能会将函数的运行时间增加六倍或更多。
在您的情况下,运行一个实际的基准测试非常重要:您检查的所有参数都需要放在内存中与实际程序中相同的位置,并且您的代码应该以相同的顺序检查它们。这样你就会看到缓存的效果。由于您的函数是全有或全无,分支预测对您的代码几乎没有影响,因为在循环退出之前预测最多会失败一次。
由于您正在从文件中读取参数,因此在测试程序中使用与您计划在实际程序中使用的 API 相同的 API 非常重要。根据平台的不同,I/O API 可能会表现出显着的性能差异,因此您的测试代码应该测试您计划在生产中使用的内容。
推荐阅读
- node.js - 使用 AWS Lambda 的快速函数中的异步中间件 (TypeError)
- c# - MVC updating session state into database via a api service does not work
- ruby-on-rails - How to run multiple folder and files using parallel test
- database - Complex combinatoric database tree - many to many with variation pivot
- terraform - AWS 提供商中的 Terraform 配置文件字段使用情况
- primes - Product of three primes divisible by sum of those primes
- jquery - 拖动期间交换元素 - jquery ui
- javascript - 您能否在 Salesforce 中实施社区中的快速操作按钮
- python - 使用 Python 进行自动化测试的浏览器选择
- android - Why pass information in an Intent to a Fragment rather then getting it from the Fragment