C++程序内联后的性能
2014-09-21 16:07
30 查看
在网上搜了关于内联函数的知识, 发现其适用性如下:
1.一个函数被重复调用;
2.函数只有几行,且不包含for,while,switch语句
对于我自己的程序来讲, 处理200M的数据文件,下面两个子函数不内联时程序执行时间在4m30~5m左右;
而声明为内联后, 程序执行时间只要3m14s左右。
按我的理解应该是因为我这两个子函数的循环太短, 所以整体上还是节约了相当的时间
它体内的循环可以当做是“非循环”来对待。
如有有幸能有前辈看到此博文, 还望多多指点, 不胜感激。
inline int check_kmer(string kmer){ //kmer的长度在32以内
for(int i = kmer_size-1; i>=0; i--)
if(kmer[i] == 'N')
return i;
return -1;
}
inline string GetSubname(string str, char ch){ //str的长度在100以内
string str_temp("");
for(int i = 0; i<str.size(); i++){
if(str[i] != ch)
str_temp[i] = str[i];
else
return str_temp;
}
return "";
}
1.一个函数被重复调用;
2.函数只有几行,且不包含for,while,switch语句
对于我自己的程序来讲, 处理200M的数据文件,下面两个子函数不内联时程序执行时间在4m30~5m左右;
而声明为内联后, 程序执行时间只要3m14s左右。
按我的理解应该是因为我这两个子函数的循环太短, 所以整体上还是节约了相当的时间
它体内的循环可以当做是“非循环”来对待。
如有有幸能有前辈看到此博文, 还望多多指点, 不胜感激。
inline int check_kmer(string kmer){ //kmer的长度在32以内
for(int i = kmer_size-1; i>=0; i--)
if(kmer[i] == 'N')
return i;
return -1;
}
inline string GetSubname(string str, char ch){ //str的长度在100以内
string str_temp("");
for(int i = 0; i<str.size(); i++){
if(str[i] != ch)
str_temp[i] = str[i];
else
return str_temp;
}
return "";
}
相关文章推荐
- Visual C++利用Intel C++ 编译器提升多核性能与多媒体指令支持获取更高的程序效率与缩小程序体积
- C++程序性能1
- 通用型C/C++程序性能测试Benchmark的简单实现
- C++ 一个问题:每次读取一个字符存入一个string中,最少读取100个字符,应该如何提高程序的性能?(C++ Primer 9.37 习题)
- [C/C++]_[初级]_[如何编写简单有效代码,提高程序运行效率和性能]
- >>VC++6.0 和 Dev-C++4989 编译的程序性能差
- 用 PGO 对C++程序执行性能进行优化
- c++程序性能优化学习
- 使用BOOST BIND库提高C++程序性能
- 程序性能的初步优化与分析(以 C++ 为例)
- C++程序性能2
- C++程序常见的性能调优方式
- c++程序大数据量处理性能优化
- Linux C++程序进行性能分析工具gprof使用入门
- Visual C++利用Intel C++ 编译器提升多核性能与多媒体指令支持获取更高的程序效率与缩小程序体积
- C++程序性能1
- C++程序性能总结
- [C++应用程序性能优化]程序使用内存区
- C++程序常见的性能调优方式
- C/C++计时器检查程序性能