第二章 性能瓶颈的分析与定位(3) 采样型分析器

藏宝库编辑 2024-10-3 12:05:20 49 0 来自 中国
采样型分析器

        采样型分析器通过周期性地抓取程序当前调用栈的快照,以及查抄当前调用的函数的方式来查抄程序状态。这里的头脑是被采样最多的函数便是占用程序实行时间最多的函数。在一个时间较长的运行过程中,被采样最多的函数可以推定实行时间最多的函数,从而可以得到最常被实行函数的大抵图像。
        这类分析器的第一个缺点是显而易见的——即它的统计本质。对不常使用的函数的采样结果大概是不正确的;函数有大概被漏采样,当分析器运行过快时也有大概被误采样。第二个缺点更加玄妙——对体系中每个函数一视同仁的数据采样方式会导致数据泛滥,而我们知道,通常只有小部分的代码于性能痛痒干系。
       固然这类分析器的缺陷显而易见,但它们本质上是一种非侵入式的检测技能。由于它们独立于构建工具链,这类分析器非常易于使用而且在现在的软件开发中被广泛使用。这类分析器包罗Visual Studio profiler, Very Sleepy, 及Luke Stackwalker等等,不一而足。有些年初的gprof也可以看作是一种检测式和采样式肴杂型分析器。
       现真相况下,你大概须要同时使用两种分析器:在分析构建或相识大概的团体情况时使用手动检测型分析器,而在观察详细题目时,使用采样型分析器获取进一步的细节数据。
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-10-18 16:45, Processed in 0.172228 second(s), 32 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表