优化是一个非常大的主题,本文并不是去深入探讨性能分析理论,算法的效率,况
术总结在这里,这样,当你遇到几种不同的编程策略的时候,就可以对每种策略的 【程序编程相关:SAN/NAS的加密复杂性】且我也没有这个能力.我只是想把一些可以简单的应用到你的c++代码中的优化技 【推荐阅读:关于现在和将来的安全计划的六个问题】一. 优化之前 【扩展信息:在NAS中是否有隐藏的安全弱点呢?】性能进行一个大概的估计.这也是本文的目的之所在.在进行优化之前,我们首先应该做的是发现我们代码的瓶颈(bottleneck)在哪里.然而当你做这件事情的时候切忌从一个debug-version进行推断,因为debug-version中包含了许多额外的代码.一个debug-version可执行体要比release-version大出40%.那些额外的代码都是用来支持调试的,比如说符号的查找.大多数实现都为debug-version与release-version提供了不同的operatornew以及库函数.而且,一个release-version的执行体可能已经通过多种途径进行了优化,包括不必要的临时对象的消除,循环展开,把对象移入寄存器,内联等等.另外,我们要把调试与优化区分开来,它们是在完成不同的任务. debug-version是用来追捕bugs以及检查程序是否有逻辑上的问题.release-version则是用来做一些性能上的调整以及进行优化.下面就让我们来看看有哪些代码优化技术吧:二. 声明的放置程序中变量与对象的声明放在什么位置将会对性能产生显著影响.同样,对postfix与prefix运算符的选择也会影响性能.这一部分我们集中讨论四个问题:初始化v.s 赋值,在程序确实要使用的地方放置声明,构造函数的初始化列表,prefix v.s postfix运算符.(1) 请使用初始化而不是赋值在c语言中只允许在一个函数体的开头进行变量的声明,然而在c++中声明可以出现在程序的任何位置.这样做的目的是希望把对象的声明拖延到确实要使用它的时候再进行.这样做可以有两个好处:1. 确保了对象在它被使用前不会被程序的其他部分恶意修改.如果对象在开头就被声明然而却在20行以后才被使用的话,就不能做这样的保证.2. 使我们有机会通过用初始化取代赋值来达到性能的提升,从前声明只能放在开头,然而往往开始的时候我们还没有获得我们想要的值,因此初始化所带来的好处就无法被应用.但是现在我们可以在我们获得了想要的值的时候直接进行初始化,从而省去了一步.... 下一页