我有一个内联函数
string myFunction() { return ""; }
和....相比
string myFunction() { return string(); }
它有性能牺牲吗?
在 VC2012 版本上使用 std::string 和 QString 对其进行了测试(尽管在 QString 上,两者返回不同的结果:感谢 DaoWen)。两者都显示第二个版本比第一个版本快约 3 倍。感谢您的所有回答和评论。测试代码附在下面
#include <iostream>
#include <string>
#include <ctime>
using namespace std;
inline string fa() { return ""; }
inline string fb() { return string(); }
int main()
{
int N = 500000000;
{
clock_t begin = clock();
for (int i = 0; i < N; ++i)
fa();
clock_t end = clock();
double elapsed_secs = double(end - begin) / CLOCKS_PER_SEC;
cout << "fa: " << elapsed_secs << "s \n";
}
{
clock_t begin = clock();
for (int i = 0; i < N; ++i)
fb();
clock_t end = clock();
double elapsed_secs = double(end - begin) / CLOCKS_PER_SEC;
cout << "fb: " << elapsed_secs << "s \n";
}
return 0;
}