Chromium пофилировщик, trace_event
Добавлено: 03 апр 2021, 17:18
Наиболее известный инструмент для анализа производительности JS скриптов на WWW-страницах.
Но не только (меня всё что с WW и JS не интересует, от слова "совершенно" ).
См.
Использование фронтенда профилировщика Chrome в собственных проектах
- в собственный проект (GIT) встраивается компонент chromium / chromium / src / base / master / . / trace_event
- если вам удался предыдущий пункт (что совсем не тривиально), то в код вставляются макросы вида (их несколько больше а самом деле):
- имеются соответствующие TRACE_EVENT1 и TRACE_EVENT2 для 1 и 2 параметров передаваемых в событие ... и другие подобные макросы
- trace_event имеет API реализации команд (комментарий из файла <trace_event/api/include/CommandClient.h>):
- синтаксис определён здесь: Trace Event Format
- и получаем автономный визуализатор результатов трассировки любого проекта.
Но не только (меня всё что с WW и JS не интересует, от слова "совершенно" ).
См.
Использование фронтенда профилировщика Chrome в собственных проектах
Идея то проста:29 августа 2017 в 11:52
- в собственный проект (GIT) встраивается компонент chromium / chromium / src / base / master / . / trace_event
- если вам удался предыдущий пункт (что совсем не тривиально), то в код вставляются макросы вида (их несколько больше а самом деле):
Код: Выделить всё
constexpr char TransferFrame[] = "vbs/dvbs/media/es/Demuxer"; // это произвольно определяемая "категория" события
...
TRACE_EVENT0(trace::TransferFrame, "transfer_frame"); // событие с 0 параметров
- trace_event имеет API реализации команд (комментарий из файла <trace_event/api/include/CommandClient.h>):
- после команды trace start каждый достигнутый макрос TRACE_EVENT* пишет строку строго определённого синтаксиса в JSON файл...Event Tracing CommandClient API handles the following commands:
- trace start [\<categories_pattern\>]
- trace stop [\<filename\> | --clear]
- trace save \<filename\>
- trace clear
- trace status
A "trace" string starting the command is a command that identifies CommandClient
handler running in the process.
- синтаксис определён здесь: Trace Event Format
- в любом браузере производном от Chromium вводим в URL строке: chrome://tracing/ (или для другого браузера, например: opera://tracing/ или brave://tracing/)Last updated: October 2016
- и получаем автономный визуализатор результатов трассировки любого проекта.