如何提高 perf 结果的精度

How to Increase precision of perf result

我正在使用 perf 来分析 C 库。但是,它不会产生 %100 结果,因为它会将数字向下滚动到 0.00x 以下的 0。由于有数千次调用,因此影响了整体结果。

有人知道如何设置精度吗?(我检查了 PERF-TRACE(1) gnu Linux 网站上的每个参数,但它不存在)

总体儿童的结果示例:

8.01%     0.11%  baxter-wksp  [kernel.kallsyms]        [k] entry_SYSCALL_64_after_hwframe 

 7.80%     3.19%  baxter-wksp  [kernel.kallsyms]        [k] 

7.62%     0.00%  baxter-wksp  [unknown]                [k] 0000000000000000

没有允许更改 perf report 结果精度的可调参数。

参考最新内核源码,正在计算perf report输出中"children"的overheadhere.

如您所见,

    case CCVAL_PERCENT:
    default:
        if (total)
            percent = period * 100.0 / total;
        return percent_color_fprintf(fp, "%.2f%%", percent);
    }

打印开销百分比的规范固定为小数点后 2 位小数位精度。这需要修改内核源代码以允许在 perf report 输出中显示任何适当的精度。