我有一个在Linux上运行的C++应用程序,我正在优化它.如何确定代码的哪些区域运行缓慢?
我需要在Linux上分析一些运行C++的代码.你们能推荐一些个人资料吗?
是否有任何好的,免费的(或至少相当便宜的)至少可以与Visual Studio 2008 Professional集成的本机C++的分析器?
我查看了DevPartner社区版,但它们似乎只支持Visual Studio 2003和Visual Studio 2005.
如果没有那么好的免费/便宜的剖析器,我可以与VS一起工作,相对较小的摩擦力?
给出以下测试代码
#include <iostream>
#include <tr1/functional>
using namespace std;
struct cl {
cl(){ cout << " cl()\n"; }
cl(const cl& from){ cout << " cl()[copy]\n"; }
~cl(){ cout << " ~cl()\n";}
};
void f1(const cl& data){}
void f2(const cl* pData){}
int main(int c, char** a)
{
cout << "enter:\n";
cl data;
cout << "ref:\n";
tr1::bind(&f1, data);
cout << "ptr:\n";
tr1::bind(&f2, &data);
cout << "exit:\n";
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我得到以下输出:
$ g++ tr1BindDtorTest.cpp && ./a.out
enter:
cl()
ref:
cl()[copy]
cl()[copy]
cl()[copy]
~cl()
~cl() …Run Code Online (Sandbox Code Playgroud)