Это командный сценарий perf, который можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.
ПРОГРАММА:
ИМЯ
perf-script - читает perf.data (созданный с помощью perf record) и отображает вывод трассировки
СИНТАКСИС
перфорация скрипт [ ]
перфорация скрипт [ ] записывать []
перфорация скрипт [ ] отчет [script-args]
перфорация скрипт [ ] []
перфорация скрипт [ ] [аргументы сценария]
ОПИСАНИЕ
Эта команда считывает входной файл и отображает записанную трассировку.
Есть несколько вариантов сценария perf:
'perf script', чтобы увидеть подробную трассировку рабочей нагрузки, которая была
записано.
Вы также можете запустить набор заранее подготовленных скриптов, которые объединяют и
суммировать необработанные данные трассировки различными способами (список скриптов приведен
доступно через 'perf script -l'). Следующие варианты позволяют
запишите и запустите эти сценарии:
'запись сценария perf ' to record the events required
для "отчета о перфомансе". is the name displayed in the
вывод 'perf script --list', то есть фактическое имя сценария минус любое
расширение языка. Если не указано, события
записывается с использованием опции -a (общесистемный) 'perf record'.
'отчет о сценарии перфоманса [args]' to run and display the results
из . is the name displayed in the output of 'perf
trace --list 'то есть фактическое имя скрипта минус любой язык
расширение. Вывод perf.data из предыдущего запуска сценария perf
записывать ' is used and should be present for this command to
преуспевать. [args] относится к аргументам (в основном необязательным), ожидаемым
сценарий.
'сценарий перфоманса ' to both
записывать события, необходимые для and to run the
используя «live-mode», т.е. ничего не записывая на диск.
имя, отображаемое в выводе 'perf script --list', т. е.
фактическое имя скрипта без каких-либо расширений языка. Если является
не указано, события записываются с использованием -a (общесистемный)
опция 'perf record'. Если has any required args, they
следует указать перед . Этот режим не позволяет
указать необязательные аргументы сценария; если необязательные аргументы скрипта
желательно, их можно указать с помощью отдельной 'записи сценария perf'
и команды 'perf script report' со стандартным выводом шага записи
передается по конвейеру на стандартный ввод сценария отчета, используя '-o -' и '-i -'
опции соответствующих команд.
'сценарий перфоманса 'для записи событий, необходимых для
и запустить с использованием "живого режима"
т.е. ничего не записывая на диск. это имя
отображается в выводе 'perf script --list', т. е. фактический
имя скрипта без расширения языка; а определено
как любое имя сценария, заканчивающееся строкой «верх».
[ ] можно передать на этапы записи сценария perf
варианты записи и в режиме реального времени; однако это невозможно для
варианты 'live-mode' или 'perf script report'.
См. Раздел "СМОТРИ ТАКЖЕ", чтобы найти ссылки на языковые
информация о том, как писать и запускать собственные сценарии трассировки.
ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ
...
Любая команда, которую вы можете указать в оболочке.
-D, --dump-raw-script =
Показать подробный дамп данных трассировки.
-L, --Latency =
Показать атрибуты задержки (прерывания / прерывание отключены и т. Д.).
-l, --list =
Показать список доступных сценариев трассировки.
-с [Ланг], --script =
Обработайте данные трассировки с помощью данного скрипта ([lang]: script [.ext]). Если строка Ланг is
указанное вместо имени скрипта, будет отображен список поддерживаемых языков
.
-g, --gen-script =
Сгенерировать стартовый скрипт perf-script. [Ext] для данного языка, используя текущие perf.data.
-a
Принудительный сбор в масштабе всей системы. Скрипты запускаются без обычно используйте -a от
по умолчанию, в то время как скрипты запускаются с обычно нет - эта опция позволяет
последний должен работать в общесистемном режиме.
-i, --input =
Имя входного файла. (по умолчанию: perf.data, если stdin не является FIFO)
-d, --debug-режим
Выполняйте различные проверки, такие как упорядочивание образцов и потерянные события.
-F, --поля
Список полей для печати, разделенных запятыми. Возможные варианты: comm, tid, pid, time, cpu,
событие, трассировка, ip, sym, dso, addr, symoff, srcline, период, iregs, brstack, brstacksym,
флаги. К списку полей можно добавить тип, трассировку, sw или hw, чтобы указать
к какому типу события относится список полей. например, -f sw: comm, tid, time, ip, sym и -f
трассировка: время, процессор, трассировка
сценарий perf -f
эквивалентно:
сценарий perf -f trace: -f sw: -f hw:
т.е. указанные поля применяются ко всем типам событий, если строка типа
не дано.
Аргументы обрабатываются в порядке получения. Более позднее использование может
сбросить предыдущий запрос. например:
-f трассировка: -f comm, tid, time, ip, sym
Первый -f подавляет события трассировки (список полей - ""), но затем
второй вызов устанавливает в полях значения comm, tid, time, ip, sym. В этом случае
пользователю выдается предупреждение:
«Отмена предыдущего запроса поля для всех событий».
В качестве альтернативы рассмотрите порядок:
-f comm, tid, time, ip, sym -f trace:
Первый -f устанавливает поля для всех событий, а второй -f
подавляет события трассировки. Пользователь получает предупреждающее сообщение о
переопределение, и результатом вышесказанного является то, что только S / W и H / W
события отображаются с указанными полями.
Для параметра 'подстановочный знак', если выбранное пользователем поле недопустимо для
тип события, пользователю отображается сообщение о том, что опция
игнорируется для этого типа. Например:
$ perf script -f comm, tid, trace
«трассировка» недействительна для аппаратных событий. Игнорирование.
«трассировка» недействительна для событий программного обеспечения. Игнорирование.
В качестве альтернативы, если для типа задано недопустимое поле, он
это ошибка. Например:
сценарий perf -v -f sw: comm, tid, trace
«трассировка» недействительна для событий программного обеспечения.
На этом этапе отображается использование, и перф-скрипт завершается.
Поле флагов синтезировано и может иметь значение, когда инструкция
Расшифровка следов. Флаги - это «bcrosyiABEx», которые обозначают ветку,
вызов, возврат, условное, системное, асинхронное, прерывание,
прерывание транзакции, начало трассировки, конец трассировки и транзакция,
соответственно.
Наконец, пользователь не может устанавливать для полей значение none для всех типов событий.
т.е. -f "" не допускается.
Вывод brstack включает информацию, относящуюся к ветвям, с необработанными адресами с использованием
/ v / v / v / v / синтаксис в следующем порядке:
ОТ: инструкция исходного кода ветки
TO: инструкция перехода
M / P / -: M = неверно предсказанная цель ветвления или неверно предсказано направление разветвления, P = предсказанная цель или предсказанное направление, - = не поддерживается
X / -: X = ветвь внутри транзакционной области, - = не в транзакционной области или не поддерживается
A / -: A = запись прерывания TSX, - = не прерванная область или не поддерживается
Brstacksym идентичен brstack, за исключением того, что адреса FROM и TO печатаются в символической форме, если это возможно.
-k, --vmlinux =
vmlinux путь
--kallsyms =
kallsyms путь
--symfs =
Ищите файлы с символами относительно этого каталога.
-G, --hide-граф вызова
При печати символов не отображается цепочка вызовов.
-С, --процессор
Сообщайте только образцы для списка предоставленных процессоров. Несколько процессоров могут быть предоставлены как
Список без пробелов, разделенных запятыми: 0,1. Диапазоны процессоров указаны с помощью -: 0-2.
По умолчанию отчеты об образцах отображаются на всех процессорах.
-c, --comms =
Отображать события только для этих сообщений. CSV, который понимает файл: // имя файла записей.
--pid =
Показывать события только для данного идентификатора процесса (список, разделенный запятыми).
--tid =
Показывать события только для данного идентификатора потока (список, разделенный запятыми).
-Я, --show-info
Показать расширенную информацию о файле perf.data. Это добавляет информацию, которая может
быть очень большим и загромождать дисплей. В настоящее время он включает: cpu и numa
топология хост-системы. Его можно использовать только с режимом отчета сценария perf.
--show-kernel-path
Попробуйте разрешить путь [kernel.kallsyms]
--show-task-events Отображение событий, связанных с задачей (например, FORK, COMM, EXIT).
--show-mmap-events Показать события, связанные с mmap (например, MMAP, MMAP2).
--show-switch-events Показать события переключения контекста, т.е. события типа PERF_RECORD_SWITCH
или PERF_RECORD_SWITCH_CPU_WIDE.
- распутать
Преобразуйте названия символов в удобочитаемую форму. По умолчанию он включен, отключите с помощью
- без разборки.
--demangle-kernel
Преобразуйте имена символов ядра в удобочитаемую форму (для ядер C ++).
--header Показать заголовок perf.data.
--header-only Показать только заголовок perf.data.
--itrace
Опции для декодирования данных трассировки инструкций. Возможные варианты:
Я синтезирую инструкции, события
b синтезировать события ветвей
c синтезировать события ветвей (только вызовы)
r синтезировать события ветвей (только возвращает)
x синтезировать события транзакций
e синтезировать ошибочные события
d создать журнал отладки
g синтезировать цепочку вызовов (использовать с i или x)
l синтезировать записи последней ветки (используйте с i или x)
По умолчанию это все события, т.е. то же самое, что и --itrace = ibxe.
Кроме того, период (по умолчанию 100000) для событий инструкций
можно указать в единицах:
я инструкции
т клещей
мс миллисекунды
микросекунды сша
нс наносекунды (по умолчанию)
Также размер цепочки вызовов (по умолчанию 16, макс. 1024) для инструкций или
события транзакций могут быть указаны.
Также количество последних записей ветки (по умолчанию 64, макс. 1024) для
могут быть указаны инструкции или события транзакций.
Чтобы полностью отключить декодирование, используйте --no-itrace.
--full-исходный путь
Показать полный путь к исходным файлам для вывода srcline.
--нс
Используйте 9 знаков после запятой при отображении времени (т. Е. Отображать наносекунды)
Используйте perf-скрипт онлайн на сервисах onworks.net