云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

香港服务器_大连公司网站建设_哪个好

小七 141 0

分析工具简介

大约一周后,我和保罗将在CMU做一个技术讲座,我们将演示一些性能工具(幻灯片dlpx.co/perftoolstalk公司). 我们决定提前发布一篇博客文章,让我们先了解一下我们将要讨论的内容,并让那些还没来得及在演讲中介绍和理解他们的程序的强大工具的初出茅庐的系统开发人员。特别是,我们将介绍以下工具:Google的gperftools(特别是CPU profiler pprof)Linux perf dtrace From CMU?去dlpx.co/cmu2013了解我们的精彩有趣的CMU表演挑战!工具最有用的性能工具之一是cpu指令探查器。最常见的cpu分析器倾向于定期停止程序并收集堆栈跟踪(也许还有其他信息)。Google有一个有趣的分析工具包,其中包括一个相当不错的基于采样的cpu分析器。它被链接到二进制文件中,并发出可供以后分析的输出。通过使用lib3分析输出的二进制文件的步骤有:使用lib3生成二进制输出。以下内容将二进制文件与libprofiler链接:对于与libprofiler链接的任何二进制文件,设置环境变量CPUPROFILE将启用分析并指定输出文件。下面的命令运行./a.out并将分析数据打印到出去。教授:我们现在可以使用pprof分析这个文件。下面,我们输出a.out中所有函数的样本计数:在这个人为的情况下,我们可以看到,311个样本中有144个是在程序执行bar时采集的,而foo函数有30.5%的时间是直接执行的,并且在采样的所有堆栈记录道中有76.8%存在。此外,pprof可以为调试二进制文件提供带注释的源输出(为所有二进制文件提供带注释的程序集)。例如,当以下代码位于第68行时,采集了157个样本,表明这可能是一个慢行:此外,pprof可以与系统上的其他工具交互以生成控制流图,以帮助您理解函数调用之间的关系。您可以在这里看到这样的输出示例-在本例中,哈希表访问似乎是一个相对昂贵的操作。这个工具非常强大,这只是它能做什么的一种尝试。您可以在这里看到完整的文档,这是一篇非常出色的博客文章,演示了如何使用pprof分析go程序。性能Perf是一个特定于Linux的分析工具。它独一无二(而且非常强大!)其特点是可以访问硬件计数器来收集信息。这些硬件计数器包含有关系统的极低级别信息,例如哪些指令导致缓存未命中。它也可以像基于采样的cpu分析器一样工作。例如,下面的代码片段运行a.out并生成了一个关于公共统计信息的报告:您还可以使用perf record和perf annotate来获取关于代码的逐个指令信息。要了解perf的这一特性和其他有趣的特性,请参阅此处的完整文档。对于正在使用的perf示例,您可以查看这篇对gitgc中字符串比较瓶颈的出色分析。dtrace公司DTrace是一个非常强大的工具,用于检查和检测软件。DTrace是为Solaris开发的,但是可以与几种主要的操作系统(包括macosx、BSD和某种程度上的Linux)一起工作。DTrace可用于安全地分析正在运行的生产系统,包括操作系统、设备驱动程序、数据库和其他应用程序。DTrace有一个相当简单的接口。您可以启用在指定事件发生时激发的探测器。例如,下面的DTrace脚本启用一个探测,该探测在具有pid 142的进程调用malloc时被命中:此外,您还可以指定当探测被命中时要执行的代码块。以下DTrace脚本跟踪并转储每个进程进行的系统调用数:此外,还可以指定一个可以动态启用或禁用探测的谓词。以下DTrace脚本是一个简单的采样基本cpu探查器:(实际上,这在Mac OSX中不起作用,因为ustack实现的行为很奇怪>;<;)。这只是对DTrace中可能发生的事情的一种尝试。我们在Delphix经常使用DTrace,因为它是一个非常强大和灵活的系统分析工具。更多信息请参见官方关于页面。关于DTrace在野外使用的一个有趣的例子,请观看数据中心的喊叫。现在怎么办?其他一些我们觉得很酷的工具:可怜的人剖析器。