如何对 C 代码的性能进行基准测试?

新手上路,请多包涵

我开始认真研究算法和数据结构,并有兴趣学习如何比较我可以实现 A&DT 的不同方式的性能。

对于简单的测试,我可以获得运行之前/之后的时间,运行 10^5 次,然后平均运行时间。我可以按大小对输入进行参数化,或者对随机输入进行采样,并获得运行时间与输入大小的列表。我可以将其输出为 csv 文件,并将其输入 pandas。

我不确定有没有警告。我也不确定如何测量 空间 复杂度。

我正在学习用 C++ 编程。是否有人性化的工具来实现我想要做的事情?

原文由 alpha 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 606
1 个回答

基准测试代码并不容易。我发现最有用的是 谷歌基准库。 即使您不打算使用它,也可以阅读一些示例。它有很多可能性来参数化测试,将结果输出到文件,甚至返回算法的大 O 表示法复杂度(仅举几例)。如果您熟悉 Google 测试框架,我建议您使用它。它还使编译器优化可以管理,因此您可以确保您的代码没有被优化掉。

CppCon 2015 上也有关于基准测试代码的精彩讨论:Chandler Carruth “调整 C++:基准测试、CPU 和编译器!哦,我的!” .您可以对可能犯的错误有很多见解(它也使用谷歌基准)

原文由 wdudzik 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题