33|性能测试的正确姿势:性能、时间和优化
吴咏炜
该思维导图由 AI 生成,仅供参考
你好,我是吴咏炜。
在上一讲讲完后,原本计划是要聊一聊内存池的。不过,要说内存池的好坏,就得讨论性能,而之前并没有专门讲过性能测试这个话题。鉴于这个问题本身有一定的复杂性,我们还是先专门用一讲讨论一下性能测试的相关问题。
意外的测试结果
假设你想测试一下,memset 究竟有没有性能优势。于是,你写下了下面这样的测试代码:
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文深入探讨了性能测试的复杂性和正确姿势,以及编译器优化对性能测试结果的影响。作者通过具体案例展示了在性能测试中可能出现的意外结果,并提出了解决方法。文章首先介绍了不同平台的时间测量函数的差异,并讨论了精度受 API 设计和函数实现影响的问题。作者还分享了通用的性能测试方法,以及一个小测试框架的使用。此外,文章还浅谈了优化的问题,指出编译器优化常常违背程序员的直觉,但在追求性能方面却表现出色。通过讨论优化和未定义行为以及优化和执行顺序的例子,读者能够更好地理解优化对代码和测试产生的影响,并能正确地测试代码的性能。整体而言,本文通过深入的技术讨论,为读者提供了关于性能测试的宝贵指导,使其能够更好地理解和应对性能测试中的复杂性和细节性。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《现代 C++ 编程实战》,新⼈⾸单¥59
《现代 C++ 编程实战》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(2)
- 最新
- 精选
- 禾桃“clock_gettime精度是0.0265微秒” 也就是26.5纳秒 请问,如果Clock_gettime返回值是到纳秒,两次取时间的差值如果是15纳秒(小于26.5纳秒),是不是意味着这个15纳秒其实手机不准确的,因为精度是26.5纳秒,远大于15纳秒。
作者回复: 差值是15纳秒,那精度显然就是15纳秒了(如果稳定的话)。事实上,对于这个函数,精度就是它的耗时——表达能力已经足够高了。
2022-04-23 - 王旧业原来UB还有积极正向的作用,以前没考虑过这种2022-11-02归属地:陕西
收起评论