我对恩智浦LPC 804微控制器上各种ETL和STL库功能的执行速度进行基准测试感兴趣。目前,我通过为每个函数创建一个C++程序,然后用示波器测量结果来做到这一点,另一方面,示波器往往会产生相当可变的结果。
我已经研究了各种基准测试套件,如Nanobench和Google Benchmark,但没有一个奏效。有谁知道更有效的解决方案?由于这更像是一个方法论上的探究,而不是一个编程问题本身,所以我没有任何代码可以附加。
如果有更合适的堆栈交换渠道,那么我很乐意删除这篇文章并在那里重新发布。谢谢!
编辑:要添加更多详细信息:
- 通过"可变"结果,我的意思是,当我在一段时间循环中连续运行一个函数时,示波器在几个不同频率之间来回闪烁的周期持续时间。我注意到这在毫秒刻度中比在微秒刻度中更频繁。
- 这是一个示例函数基准测试的结构:
int main() {
while (true) {
// set GPIO pin
// execute some function
// clear GPIO pin
}
return 0;
}
- 由于这是一项正式的研究评估,因此建议我使用标准基准测试套件或使用示波器,而不是自己使用计时器创建基准测试功能,因为我被告知微控制器计时器有些不精确。
根据数据表,LPC804有一个"32位通用计数器/定时器",也许您可以将其配置为进行测量。这样,您可以编写一次计时代码并以编程方式检查结果。