c/c++性能优化
看了一本讲性能优化的书,挑出其中比较有意思的建议,仅供参考:
1. 同样是加减乘除,int比float和double都要快,所以尽量用int做加法、乘法运算,最后再除法,变回浮点型
2. “&&”符的左右判断可以更考究,比如:if( (strlen(a)>10) && (b>100) )没有 if( (b>100) && (strlen(a)>10) )高效,因为strlen较花时间
3. 对于多层的if-else语句来说,要把可能性最高的放在开始,这样逻辑通常就在第一个判断后执行,避免了总是经过多次判断走到后面的else上
4. 通常switch比if-else快
5. 迭代比递归快
6. 快速字符串比较方法:先比较两个字符串的第一个字符,再全部比较。因为通常待比较的字符压根儿就不同,没必要一来就strcmp这么大动干戈
7. 把字符串以int方式读取来比较能够加快比较速度
8. fprintf比fstream快不了多少,但fgets比getline快很多
1. 同样是加减乘除,int比float和double都要快,所以尽量用int做加法、乘法运算,最后再除法,变回浮点型
2. “&&”符的左右判断可以更考究,比如:if( (strlen(a)>10) && (b>100) )没有 if( (b>100) && (strlen(a)>10) )高效,因为strlen较花时间
3. 对于多层的if-else语句来说,要把可能性最高的放在开始,这样逻辑通常就在第一个判断后执行,避免了总是经过多次判断走到后面的else上
4. 通常switch比if-else快
5. 迭代比递归快
6. 快速字符串比较方法:先比较两个字符串的第一个字符,再全部比较。因为通常待比较的字符压根儿就不同,没必要一来就strcmp这么大动干戈
7. 把字符串以int方式读取来比较能够加快比较速度
8. fprintf比fstream快不了多少,但fgets比getline快很多
相关文章
- fedora 9 小集 - 01 05, 2009
- 多线程调试 - 12 17, 2008
- fedora 9 试用 - 12 05, 2008
留言: