重温csapp
http://www.cs.cmu.edu/afs/cs/academic/class/15213-f15/www/lectures/10-optimization.pdf
-
moving code out of loop # 一些编译器会帮你做
-
少用乘除 16*x -> x<<4
-
将重复且不会发生改变的函数移除loop
如void lower(char *s) { size_t i; size_t len = strlen(s); for (i = 0; i < len; i++) if (s[i] >= 'A' && s[i] <= 'Z') s[i] -= ('A' - 'a'); }
-
善用局部变量,编译器可以不用储存中间结果,避免多次访问同一内存
-
展开循环
§ S;ll sequen;al dependency