Как повысить точность результата - PullRequest
0 голосов
/ 14 февраля 2020

Я использую perf для профилирования библиотеки C. Тем не менее, он не дает% 100 результатов, потому что он сводит число до 0 ниже 0,00x. Поскольку есть тысячи вызовов, это влияет на общий результат.

Кто-нибудь знает, как установить точность? (я проверял каждый аргумент в PERF-TRACE (1) gnu Linux web сайт, но он не существует)

Пример результата для всех детей:

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

1 Ответ

3 голосов
/ 21 февраля 2020

Нет настраиваемых параметров, позволяющих изменять точность результатов perf report.

Принимая последний исходный код ядра для справки, вычисляются значения overhead для "children" в выводе отчета perf * здесь .

Как вы можете видеть здесь,

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

Спецификация для печати процентов накладных расходов фиксируется с точностью до 2 десятичных знаков di git после десятичной точки. Для этого необходимо изменить исходный код ядра, чтобы обеспечить любую соответствующую точность для отображения в выводе perf report.

...