在上一篇文章中,我们使用了Perfview的分组功能。分组功能旨在对某些函数按照某个格式进行分组,以减少视图中的各种无关函数的数量。但仅有分组还不够,有时我们想将一些函数调用信息按某些条件过滤掉,例如将采用小于1%的函数调用信息去掉,或者将函数名中包含某个字眼的函数信息去掉,甚至只显示某个时间段调用的函数。这就需要用到PerfView提供的过滤(Filtering)功能了。PerfVIew提供了3种过滤功能:折叠(Folding),匹配过滤,和时间范围选择(Set Time Range)
折叠(Folding)
PerfView在界面上提供了两种Folding功能:“Fold%” 和 “FoldPats”.
“Fold%”意思是,将采样少于该百分比的函数调用信息条目“折叠”掉,并将其采样时间累加到这些函数的调用者。这里“折叠”的意思其实应该说是隐藏掉。
“FoldPats”:与“Fold%”类似,会将符合条件的函数调用记录“折叠”(或“隐藏”)掉,而它的采样时间将会算在它的直接调用者头上。而与“Fold%”不同的是它的条件不是“Inc%”的值,而是函数名称中符合给定的匹配模式。同时,这个功能也支持指定多个模式,不同模式之间用";"(分号)隔开。
过滤(Filtering)
折叠功能能实现过滤的效果,只是被过滤的项的采样时间会被累加到调用者身上。有时我们其实只想简单地去掉一些我们不关心的函数,同时也不需要保留它们的采样时间。这时,我们可以采用“简单粗暴”的过滤方式。
"IncPats":可以设置一个或多个模式(多个时用分号";"隔开),