文件名称:加速策略-vmware虚拟机中centos安装 centos安装qt的教程图解
文件大小:8.63MB
文件格式:PDF
更新时间:2024-06-29 06:30:05
程序设计实践
7.3 加速策略 在改造一个程序,设法把它弄得更快之前,首先应该确定它确实太慢。然后应该通过计 时工具和轮廓文件,弄清时间到底跑到哪里去了。在你知道发生了什么之后,有一些可以采 用的策略。我们列出几个,按照获益递减的顺序。 使用更好的算法或数据结构。要使程序运行速度快,最重要的因素是算法与数据结构的选择, 有效的算法和不那么有效的算法造成的差距是巨大的。在s p a m程序上,我们已经看到由于改变 数据结构所产生的效率上十倍的变化。如果一个新算法降低了计算的数量级,例如从O(n2)降低到 O(nl o gn),那么速度的改善又会更大得多。第2章已经讨论过这个问题,这里就不再仔细谈它了。 应该弄清实际的复杂性正是我们所期望的,否则这里就可能隐藏着一个性能错误。下面 的片段看起来是一个线性的字符串扫描算法: 但它实际上是平方的。如果 s有n个字符,每次调用s t r l e n都需要对这个串里的n个字符扫视 一遍,而循环本身又要做n次。 让编译程序做优化。有一种毫不费力的改变就可能产生明显的加速效果,那就是打开编译系 统的所有优化开关。现代编译程序已经做得非常好了,这实际上大大减小了程序员对程序做 各种小改进的必要性。 在默认情况下,C和C++ 编译程序并不设法做很多优化工作,通过编译选项可以打开一个 优化程序 (说得更准确些,应该是“改进程序” )。按说这个选项应该是默认的,但是由于做优 138计计程序设计实践 下载 运行时间 (秒) 2 的幂 素数 散列表大小