C++测试程序运行时间

本文探讨了优化程序的重要性,尤其是在当今硬件性能增长放缓和移动平台的限制下。文章提供了优化建议,如使用更好的编译器、优化选项、算法、库和数据结构,以及减少内存分配。同时,介绍了如何测试程序的运行时间,利用自定义测试框架来评估优化效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于优化

我们应当忘记小的性能优化,百分之九十七的情况下,过早的优化都是万恶之源

这句话在很多时候都被引用到,以至于"不要优化"(注意,是"不要优化"而不是“不要过早优化”)已经深入人心,过度地推崇这条建议经常会成为如下行为的借口

  • 编程恶习
  • 逃避性能分析

还有另一个常识:优化是不重要的,这条常识的理由,在<unix编程哲学>中也被提到过

程序员工具箱中最强大的优化技术就是不做优化

有几个理由支持这条禅式的忠告:其中一个是摩尔定律的指数效应----最聪明,最便宜,常常也是最迅速的性能提升方法,就是等上几个月,期待硬件性能更好

但是,时代是会变化的,如今,单个核心的性能增长非常慢,而且,如今的程序还必须运行在移动平台上(已经成为大多数),电池的电量和散热都制约了指令的执行效率,而优化,可以让程序永远保持活力

而且说性能无所谓的,只限于某些程序,对于工作负载很大以至于需要分布式处理的程序,性能影响就会非常大,以至于小小的优化都能节约莫大的成本,例如从1000台云主机将到只需600台

如何优化

1.使用更好的编译器,然后打开它们的优化选项

2.使用更好的算法,而不是英勇地去改进算法

3.使用更好的库

4.减少内存分配和复制,这是一个很有用的优化手段

5.使用更好的数据结构

6.提高并发行

如何测试性能

之前使用了gtest测试框架,觉得gtest的测试用例所使用的形式深的我心,于是仿照其形式写了一个测试运行时间的,如下

代码

#include <iostream>
#include <queue>
#include <chrono>
using namespace std::chrono;

namespace _TimeTest
{
   
   
//A Base Timer
class TimerBase
{
   
   
public:
    TimerBase() : m_start(system_clock::time_point::min
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值