性能分析工具perf与gperftools (性能分析工具有哪些)
本文目录导航:
性能分析工具perf与gperftools
在优化C/C++程序性能时,寻找瓶颈并针对性优化是一个关键步骤。
本文着重介绍了两个常用的性能分析工具:perf和gperftools。
perf是Linux系统下的性能分析工具,通过yum install perf命令在Centos上安装。
perf能快速定位热点函数,执行`perf top -p calc_pid`,可以看到fun()函数是程序的性能瓶颈。
在fun函数行内,可以详细查看耗时高的代码指令。
此外,perf的火焰图功能帮助我们理解代码执行分支的性能分布,通过`perf script`生成的文件,火焰图展示了函数间的调用关系和执行时间。
然而,perf无法直接呈现函数整体消耗,这时gperftools就派上用场。
gperftools是Google出品的工具集,以cpu-profiler为例,我们可以通过编译时链接profiler库来使用。
设置环境变量后,运行程序会产生profiler数据文件,再通过pprof命令生成文件,如vsnprintf函数在`profiler2_`中占比8.9%。
gperftools提供更全面的函数调用链和消耗分析,尤其适用于perf难以处理的复杂程序。
总结来说,perf在性能分析中通常作为首选,因为它更易使用。
但在遇到复杂情况时,gperftools的cpu-profiler工具能够提供更深入的剖析,因此在必要时可以考虑使用它。
两者结合,能更有效地优化程序性能。

关于could not find the main class
首先要进行编译, javac 编译通过的话,把生成的文件放到 ./com/jersey/test目录下,再用java 应该就可以了。也可以 javac -d . 进行编译,会自动生成目录,注意-d后面有一个空格,点表示当前目录,运行的时候一样要包名加类名,java
VS2013的创建单元测试的功能怎么找出来
本文是官方文档的学习笔记,官方文档在这里。
1、打开VS3013,随便建一个解决方案,比如叫:UnitTest,建一个类库项目UnitTest_Bank,该项目中添加一个BankAccount类,这个类及类中的方法就是我们要测试的对象。
2、给UnitTest添加一个测试项目:在解决方案名称上右键=》添加=》新建项目=》VisualC#=》测试=》单元测试项目,项目名称叫UnitTest_BankTest,将UnitTest_Bank添加为UnitTest_BankTest的引用项目,将测试项目UnitTest_BankTest里默认生成的类重命名为BankAccountTest。
对于BankAccountTest类,类上有注解TestClass,方法上有注解TestMethod。
可以在这类文件里添加其他类和方法,供测试方法使用。
首个测试:3、现在我们测试BankAccount类的Debit方法,我们预先确定此次测试要检查如下方面:a、如果信用余额(credit amount)比账户余额大,该方法就抛异常ArgumentOutOfRangeExceptionb、如果信用余额小于0也抛异常c、如果a和b都满足,该方法会从账户余额里减去amount(函数参数)注意:由a、b、c可以看邮BankAccount类中的Debit方法最后一行应该是-=,而不是+=——当然了,这个是故意留下的bug,而不是微软的失误,就等着在这次测试中把它测出来,然后修正掉。