Chromium пофилировщик, trace_event

Вопросы написания собственного программного кода (на любых языках)

Модератор: Olej

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Chromium пофилировщик, trace_event

Непрочитанное сообщение Olej » 03 апр 2021, 17:18

Наиболее известный инструмент для анализа производительности JS скриптов на WWW-страницах.

Но не только (меня всё что с WW и JS не интересует, от слова "совершенно" :-D ).
См.
Использование фронтенда профилировщика 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_EVENT1 и TRACE_EVENT2 для 1 и 2 параметров передаваемых в событие ... и другие подобные макросы
- trace_event имеет API реализации команд (комментарий из файла <trace_event/api/include/CommandClient.h>):
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 start каждый достигнутый макрос TRACE_EVENT* пишет строку строго определённого синтаксиса в JSON файл...
- синтаксис определён здесь: Trace Event Format
Last updated: October 2016
- в любом браузере производном от Chromium вводим в URL строке: chrome://tracing/ (или для другого браузера, например: opera://tracing/ или brave://tracing/)
- и получаем автономный визуализатор результатов трассировки любого проекта.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Chromium пофилировщик, trace_event

Непрочитанное сообщение Olej » 03 апр 2021, 17:19

Olej писал(а):
03 апр 2021, 17:18
- в любом браузере производном от Chromium вводим в URL строке: chrome://tracing/ (или для другого браузера, например: opera://tracing/ или brave://tracing/)
- и получаем автономный визуализатор результатов трассировки любого проекта.
Chrome:
chrome_4.png
chrome_4.png (148.34 КБ) 1157 просмотров
Chromium:
chromium_1.png
chromium_1.png (86.5 КБ) 1157 просмотров
Opera:
opera_1.png
opera_1.png (68.75 КБ) 1157 просмотров
Brave:
brave_3.png
brave_3.png (176.88 КБ) 1157 просмотров

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Chromium пофилировщик, trace_event

Непрочитанное сообщение Olej » 17 апр 2021, 00:18

Вот так выглядит профилирование одного из реальных проектов.
Вложения
Снимок экрана от 2021-04-17 00-17-08.png
Снимок экрана от 2021-04-17 00-17-08.png (84.67 КБ) 1112 просмотров

Ответить

Вернуться в «Программирование»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 8 гостей