Дата публикации: 30.01.2019 Добавил: ADM Категория: Плагины
427
0

Данный плагин помогает узнать, какие функции в скрипте выполняются дольше всего, благодаря чему можно понять, какие отрывки кода следует оптимизировать в первую очередь.
Он измеряет количество вызовов и время выполнения каждой функции. Полученная информация сохраняется в одном из поддерживаемых на данный момент форматов: HTML, XML или в виде обычного текста.

Профилирование начинается при загрузке скрипта и завершается при его выгрузке (т.е., когда вы закрываете сервер или выполняете RCON-команды exit/gmx/unloadfs/reloadfs). Во время выгрузки статистические данные сохраняются в файл <имя_скрипта>-profile.<расширение>. Расширение зависит от выбранного вами формата сохраняемой информации (см. выше).

Плагину можно указать дополнительные параметры в server.cfg:
profile_gamemode <0|1>
Если указано 1, плагин будет профилировать мод, запускаемый на сервере. Значение по умолчанию: 0.

profile_filterscripts <fs1> <fs2>
Список фильтрскриптов, которые нужно профилировать. Может быть пустым.

profile_format <xml|html|text>
Формат вывода статистики. Значение по умолчанию: html. Причание: в HTML-документе можно сортировать данные статистики, щёлкая по заголовкам колонок!!

Я не перевёл пункты про параметры call_graph и call_graph_format. В них было сказано о программе GraphViz, ссылка на сайт которой мертва, поэтому у меня не было возможности разобраться.
Не забудьте указать "profile_gamemode 1" в server.cfg для профилирования мода, т.к. по умолчанию профилирование почему-то выключено.
Остальные пункты в принципе указывать не обязательно: при их отсутствии фильтрскрипты профилироваться не будут, а отчёт будет сохраняться в формате HTML в одной папке со скриптом мода.
Profiler не совместим с плагинами JIT и CrashDetect. Эти плагины созданы для совершенно разных целей и их использование вместе само по себе абсурдно, поэтому для использования Profiler уберите "jit(.so)" и "crashdetect(.so)" из server.cfg.
Профилируются только нативные функции, коллбэки и функции, вызываемые с помощью других нативных функций (SetTimer, SetTimerEx, CallLocalFunction, CallRemoteFunction, etc.)