我想做类似“perf record -g -p PID -- sleep 60”之类的事情,但要将堆栈采样限制在特定时间段内,以避免应用程序中运行的许多线程产生噪音。
所以这个想法是,每当函数 X() 在线程 T 上运行时,我就开始在线程 T 上采集 cpu 样本,直到函数 Y() 在同一个线程上运行。输出可以限制为每个函数的 cpu% - 有和没有被调用者。
作为这种选择性采样的替代方法,我可以记录所有样本并过滤后处理阶段不感兴趣的样本。
关于如何做到这一点的任何想法?
我想做类似“perf record -g -p PID -- sleep 60”之类的事情,但要将堆栈采样限制在特定时间段内,以避免应用程序中运行的许多线程产生噪音。
所以这个想法是,每当函数 X() 在线程 T 上运行时,我就开始在线程 T 上采集 cpu 样本,直到函数 Y() 在同一个线程上运行。输出可以限制为每个函数的 cpu% - 有和没有被调用者。
作为这种选择性采样的替代方法,我可以记录所有样本并过滤后处理阶段不感兴趣的样本。
关于如何做到这一点的任何想法?