跟我学C++中级篇——优化的整体分析

一、软件的优化

对于软件优化来说,已经是老生常谈。这里开门见山,说一句最核心的:“不要急于优化”。要把优化当成一种渐进的过程,在时机到达时,再展开优化。而且正常情况下,优化一定是一个从点到面的过程,而不是暴风骤雨的革命式的优化。那不叫优化,那叫重构或者重写。当然,从更宏观的角度看,二者也算是一种优化。
在前面的文章的优化的一系列文章中,从各个角度对优化进行过分析(如“c++应用程序优化系列”)。这些文章更多的是聚焦于具体的某个业务层次进行了优化的阐述,今天这篇文章则从整体上对优化进行一次分析说明。
大家需要注意的是,所谓的软件优化,不单纯指开发者看到的效率或者执行速度的提升。其广泛的包括:效率、质量、可扩展性、成本、可维护性以及其它种种能够降低软件开发难度提高软件整个生命周期的成本的工作。

二、优化整体分类

软件优化有很多种,可以从不同的角度来划分。这里将软件优化分为以下几种比较典型的方面:
1、设计优化
设计优化,有些类似于工程优化。好的设计,可能会更灵活更高效。比如引入一些设计模式或者新的设计思想,让整个程序分层更清晰,代码更优雅。提高了程序的可阅读性和可维护性,扩展性也大大增强。这就是设计优化的目的。
想要有一个良好的设计,除了丰富的经验外,不断的提高设计者的设计思想水平,才是根本。所以优化软件,首先要设计者本身优化。
2、编译优化
指的是使用更好的编译器而不是在代码层次针对编译器进行优化。简单说来,就是前面提到的,好的编译器会自动对一些代码进行优化,提高效率并预防出现一些低级的问题。
3、代码优化
最常见的优化,其实大多指的就是代码的优化。它更倾向于把代码写得更简洁、效率更高,更容易排除一些BUG。比如在C++中引入RAII,引入一些编程技巧等,诸如此类。可以让程序的代码执行效率更高或者更安全。
但这里有一点需要注意,很多优化者把这项优化追求到了极致,优化的代码往往非一般开发者能够三五眼看明白的。所以说,这种极致优化,其实是一种特定场景的优化。大家不要陷入这种极致的思想不能自拔,处处要榨干代码的能力。最合适的才是最好的。
4、算法优化
算法优化

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值