Данный плагин помогает узнать, какие функции в скрипте выполняются дольше всего, благодаря чему можно понять, какие отрывки кода следует оптимизировать в первую очередь.
Он измеряет количество вызовов и время выполнения каждой функции. Полученная информация сохраняется в одном из поддерживаемых на данный момент форматов: 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.)
Вы можете прорекламировать свой сервер на этом сайте. За небольшую плату!
Написать сообщение