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

一、软件的优化

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

二、优化整体分类

软件优化有很多种,可以从不同的角度来划分。这里将软件优化分为以下几种比较典型的方面:
1、设计优化
设计优化,有些类似于工程优化。好的设计,可能会更灵活更高效。比如引入一些设计模式或者新的设计思想,让整个程序分层更清晰,代码更优雅。提高了程序的可阅读性和可维护性,扩展性也大大增强。这就是设计优化的目的。
想要有一个良好的设计,除了丰富的经验外,不断的提高设计者的设计思想水平,才是根本。所以优化软件,首先要设计者本身优化。
2、编译优化
指的是使用更好的编译器而不是在代码层次针对编译器进行优化。简单说来,就是前面提到的,好的编译器会自动对一些代码进行优化,提高效率并预防出现一些低级的问题。
3、代码优化

你可能感兴趣的:(C++,架构设计,c++)