编写高效的程序需要做到以下几点:
第一,我们必须选择一组适当的算法和数据结构。
第二,我们必须编写出编译器能够有效优化以转换成高效可执行代码的源代码。对于第二点,理解优化编译器的能力和局限性是很重要的。编写长须方式中看上去只是一点小小的变动,都会引起编译器优化方式很大的变化。有些编程语言比其他语言容易优化。C语言的有些特性,例如执行指针运算和强制类型转换的能力,使得编译器很难对它进行优化。程序员经常能够以一种使编译器更容易产生高效代码的方式来编写他们的程序。
第三,针对处理运算量特别大的计算将一个任务分成多个部分,这些部分可以在多核和多处理器的某种组合上并行地计算。
从过程调用开销上,优化代码有几方面(OP代表某个运算,加、减、乘、除,INDENT为宏变量):
1.消除低效率的循环
上述代码中,每次循环都需要对结构v取长度,但是v的长度是固定的,可以使用一下代码取代
2.减少过程调用
在函数中,尽量减少过程的调用,这与模块化的思想违背。
3.消除不必要的内存引用
在机器语言中,读取寄存器的值比读取内存中的数据要快很多,在代码中