Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

2 страниц V   1 2

AMX Mod X 1.10.0.1 + PERFORMANCE ISSUE DETECTOR

, Представляю свой билд с поиском неоптимизированных плагинов! [РЕШЕНО]
Статус пользователя karaulov
сообщение 1.12.2021, 8:37
Сообщение #1


Стаж: 15 лет

Сообщений: 1077
Благодарностей: 435
Полезность: 465

Представляю вам свой билд последнего AMXMODX с функцией обнаружения неоптимизированных плагинов! Такого вы точно нигде не видели!


Скачать https://github.com/alliedmodders/amxmodx/pull/1019
Проверял только на Windows. Т.к нет linux с требуемой версией glibc.

Версия AMX Mod X 1.10.0.1


Пример на старнадртных плагинах : (Как и ожидалось самое тяжелое место это plugin_init, но это не так важно при загрузке карты)
L 12/01/2021 - 10:03:28: [admincmd.amxx] performance issue 2. Function plugin_init executed more than 3 ms.
L 12/01/2021 - 10:03:28: [cmdmenu.amxx] performance issue 2. Function plugin_init executed more than 10 ms.
L 12/01/2021 - 10:03:28: [plmenu.amxx] performance issue 2. Function plugin_init executed more than 2 ms.
L 12/01/2021 - 10:03:28: [mapsmenu.amxx] performance issue 2. Function plugin_init executed more than 3 ms.
L 12/01/2021 - 10:03:28: [pluginmenu.amxx] performance issue 2. Function plugin_init executed more than 2 ms.
L 12/01/2021 - 10:03:28: [adminchat.amxx] performance issue 2. Function plugin_init executed more than 2 ms.


Пример выводимых данных на тестовом плагине который ограничивает фпс:

L 12/01/2021 - 10:01:48: [give_me_unreal_fps.amxx] performance issue 2. Function server_frame executed more than 379 ms.
L 12/01/2021 - 10:01:49: [give_me_unreal_fps.amxx] performance issue 2. Function server_frame executed more than 392 ms.
L 12/01/2021 - 10:01:50: [give_me_unreal_fps.amxx] performance issue 2. Function server_frame executed more than 396 ms.
L 12/01/2021 - 10:01:51: [give_me_unreal_fps.amxx] performance issue 2. Function server_frame executed more than 393 ms.
L 12/01/2021 - 10:01:52: [give_me_unreal_fps.amxx] performance issue 2. Function server_frame executed more than 390 ms.
L 12/01/2021 - 10:01:53: [give_me_unreal_fps.amxx] performance issue 2. Function server_frame executed more than 392 ms.
L 12/01/2021 - 10:01:54: [give_me_unreal_fps.amxx] performance issue 2. Function server_frame executed more than 391 ms.
L 12/01/2021 - 10:01:55: [give_me_unreal_fps.amxx] performance issue 2. Function server_frame executed more than 392 ms.
L 12/01/2021 - 10:01:56: [give_me_unreal_fps.amxx] performance issue 2. Function server_frame executed more than 390 ms.


Отредактировал: karaulov, - 1.12.2021, 19:50
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   Цитировать сообщение
Статус пользователя Lena1978
сообщение 1.12.2021, 9:27
Сообщение #2
Стаж: 17 лет

Сообщений: 318
Благодарностей: 37
Полезность: < 0

Главное чтобы сам меритель не вызывал больше лагов, чем неоптимизированный плагин.
Ато был тут один меритель серверного ФПС, сделанный через анальное место...
Аккурат сам и вызывал лаги и фризы )))
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя karaulov
сообщение 1.12.2021, 9:29
Сообщение #3


Стаж: 15 лет

Сообщений: 1077
Благодарностей: 435
Полезность: 465

Цитата(Lena1978 @ 1.12.2021, 10:27) *
Главное чтобы сам меритель не вызывал больше лагов, чем неоптимизированный плагин.
Ато был тут один меритель серверного ФПС, сделанный через анальное место...
Аккурат сам и вызывал лаги и фризы )))


ну давай покажи что там лаги вызвать может) если ты не анальный эксперт )

// добавлено через минуту размышлений

Вот даже для сравнения https://github.com/alliedmodders/amxmodx/pull/1016/files

Отредактировал: karaulov, - 1.12.2021, 9:36
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя steelzzz
сообщение 1.12.2021, 10:13
Сообщение #4


Стаж: 12 лет

Сообщений: 609
Благодарностей: 187
Полезность: 167

Когда же ему интернет запретят..


Нужна помощь в настройке сервера или плагина? (Платно) -> Тык
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя karaulov
сообщение 1.12.2021, 10:43
Сообщение #5


Стаж: 15 лет

Сообщений: 1077
Благодарностей: 435
Полезность: 465

Цитата(steelzzz @ 1.12.2021, 11:13) *
Когда же ему интернет запретят..


Не флуди в теме) Если что-то полезное сказать можешь, то давай ) Или ты только плагины которые крашат сервер умеешь делать?))

Отредактировал: karaulov, - 1.12.2021, 10:47
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Metal Messiah
сообщение 1.12.2021, 13:20
Сообщение #6


Иконка группы

Стаж: 13 лет

Сообщений: 2458
Благодарностей: 1482
Полезность: 772

HostGame.cf
Если я правильно понял, там только замер времени выполнения определенных вызовов. Интересная идея. По сути MySQL slow queries.


Полезные публикации - ссылки у меня в профиле. Ссылка на плагин против спама на сервере StopServerSpam там же.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя karaulov
сообщение 1.12.2021, 13:37
Сообщение #7


Стаж: 15 лет

Сообщений: 1077
Благодарностей: 435
Полезность: 465

Цитата(Metal Messiah @ 1.12.2021, 14:20) *
Если я правильно понял, там только замер времени выполнения определенных вызовов. Интересная идея. По сути MySQL slow queries.

Да вызов всех паблик функций. (включая forward/callback/task/event)

Таймер из <chrono> перед выполнением функции и после выполнения. Сравнивается, если задержка выше допустимой (нормальная функция не будет выполнятся больше 1мс по этому поставил проверку выше 1мс) то пишет в лог.

Ну на счет plugin_init plugin_cfg это всем известно что там выполняется самый тяжелый код чтение файлов, запросы и т.п, по этому они всегда будут в списке при запуске.

Правда скомпилить под старый GLIBC не выходит что-то, по этому проверял на Windows.

Отредактировал: karaulov, - 1.12.2021, 13:38
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя steelzzz
сообщение 1.12.2021, 13:46
Сообщение #8


Стаж: 12 лет

Сообщений: 609
Благодарностей: 187
Полезность: 167

karaulov, заметь, проблема только у тебя была


Нужна помощь в настройке сервера или плагина? (Платно) -> Тык
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя karaulov
сообщение 1.12.2021, 13:50
Сообщение #9


Стаж: 15 лет

Сообщений: 1077
Благодарностей: 435
Полезность: 465

Цитата(steelzzz @ 1.12.2021, 14:46) *
karaulov, заметь, проблема только у тебя была

Последние сообщения читай о своем AUW на соседнем форуме, человек написал о краше а от тебя не слова) Не надо писать что проблема только у меня)
У меня проблема решилась переходом на старую версию(хоть там и плюется ошибками в лог get_member изредка но хотя бы не крашит сервер)

Отредактировал: karaulov, - 1.12.2021, 13:51
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя karaulov
сообщение 1.12.2021, 15:58
Сообщение #10


Стаж: 15 лет

Сообщений: 1077
Благодарностей: 435
Полезность: 465

Обновил свой Pull Request (написали что надо сделать более читаемым что бы добавили в офф релиз)



https://github.com/alliedmodders/amxmodx/pull/1019
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mazdan
сообщение 2.12.2021, 9:02
Сообщение #11


Иконка группы

Стаж: 15 лет

Сообщений: 7566
Благодарностей: 5437
Полезность: 1305

karaulov, а можно сделать чтобы это было на уровне плагина включение? Может быть какой-то список плагинов для активации\деактивации? Есть ли возможность сделать не просто время выполнения функции но и статистику вызовов (суммарное время работы), а то что толку если функция выполняется 0.1 мс, но при этом вызывается по 10-300 раз за один фрейм? Так было в профайлере сделано, в целом полезно. Ну и так можно понять конкретнее почему тормозит та или иная функция, условно если в функции А стоит цикл по игрокам и в цикле вызывается 10 разных функций А1 - А10, при этом каждая А1 - А10 меньше 1мс, но суммарно они дают все 3мс, а как дальше искать не понятно :)


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя karaulov
сообщение 2.12.2021, 10:07
Сообщение #12


Стаж: 15 лет

Сообщений: 1077
Благодарностей: 435
Полезность: 465

mazdan, ну мне там https://github.com/alliedmodders/amxmodx/pull/1019 написали и я сделал настройку через квар теперь можно установить порог срабатывания в ms (например поставить 0.1 = 100 микросекунд)
и работать будет только для плагинов под отладкой
+ если amx_debug установить в 2 то будет работать для всех плагинов даже не поддерживающих отладку.

Расширение функционала пока не хочу делать т.к именно в таком виде как сейчас, он не влияет на производительность. (Сам монитор не жрет ресурсы и не садит фпс)



Отредактировал: karaulov, - 2.12.2021, 10:11
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mazdan
сообщение 2.12.2021, 10:22
Сообщение #13


Иконка группы

Стаж: 15 лет

Сообщений: 7566
Благодарностей: 5437
Полезность: 1305

karaulov, если amx_debug = 2 то плагины без откладки вроде как и не работают :) В целом нормуль, спасибо.
но в целом нормуль да, хотя бы так.
ну потому и говорю что для более крутой функциональности нужно отдельно для плагинов включать. Отдельным модулем это не получится сделать?
В профайлере это было сделано так что он результаты сохранял при смене карты. тогда в рантайме был только подсчёт вызовов (количество, самый быстрый, самый долгий, среднее значение, сумма), не такая уж прям нагрузка числа складывать :)


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя karaulov
сообщение 2.12.2021, 10:25
Сообщение #14


Стаж: 15 лет

Сообщений: 1077
Благодарностей: 435
Полезность: 465

mazdan, но надо же сохранять гору инфы о вызовах, это вряд ли можно сделать без нагрузки на сервер.

Сейчас в таком виде, можно активировать для одного плагина, для всех отключить отладку, для одного включить. (в plugins.ini)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mazdan
сообщение 2.12.2021, 12:05
Сообщение #15


Иконка группы

Стаж: 15 лет

Сообщений: 7566
Благодарностей: 5437
Полезность: 1305

Цитата(karaulov @ 2.12.2021, 11:25) *
mazdan, но надо же сохранять гору инфы о вызовах, это вряд ли можно сделать без нагрузки на сервер.

Сейчас в таком виде, можно активировать для одного плагина, для всех отключить отладку, для одного включить. (в plugins.ini)
да я понял да, про отладку понятно )
По поводу горы, не такая уж и гора :) Вот профайлер, который был раньше, https://forums.alliedmods.net/showthread.php?t=67752
там есть пример вывода информации, кроме того что выводится то и ничего не нужно храниить же, да, для больших плагинов там сотни или тысячи выозовов, но это не супермного прям, хранить же всё в аггрегированном уже виде, графики производительности вряд ли нужны :)


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя karaulov
сообщение 6.12.2021, 6:18
Сообщение #16


Стаж: 15 лет

Сообщений: 1077
Благодарностей: 435
Полезность: 465

Добавлено в официальный AMXMODX билд 1.10 версии в таком виде как есть.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
XyLiGaN
сообщение 6.12.2021, 7:42
Сообщение #17
Стаж: 13 лет
Город: Югорск

Сообщений: 11668
Благодарностей: 6450
Полезность: 1052

Меценат Меценат

Цитата(karaulov @ 6.12.2021, 9:18) *
Добавлено в официальный AMXMODX билд 1.10 версии в таком виде как есть.

Есть просьба к тебе, если не умеешь компилить под Linux, то тогда в офф. релизы вообще не лезь. Либо проверяй на работоспособность свои доработки.

Данная версия - НЕ РАБОТОСПОСОБНА под Linux, тупо в консоле bad file load на сошку amxmodx.
Если и делаешь какие-то правки, то сперва проверь, а уж потом выкладывай. Почти у всех сервера под Linux работают.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя karaulov
сообщение 6.12.2021, 7:49
Сообщение #18


Стаж: 15 лет

Сообщений: 1077
Благодарностей: 435
Полезность: 465

XyLiGaN, я как бы в PR указал что проверял только на Windows, но запрос приняли никто видимо не убедился в работоспособности на старых OS.

Но автоматическая сборка на всех свежих OS включая MAC прошли успешно:
https://github.com/alliedmodders/amxmodx/ac...runs/1542840825
https://ci.appveyor.com/project/psychonic/a...builds/41779956

Отредактировал: karaulov, - 6.12.2021, 7:50
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
XyLiGaN
сообщение 6.12.2021, 10:07
Сообщение #19
Стаж: 13 лет
Город: Югорск

Сообщений: 11668
Благодарностей: 6450
Полезность: 1052

Меценат Меценат

karaulov, Старых ОС? Это ты о каких имеешь ввиду?
У меня допустим сервер стоит на ОС Debian 12 со всем последним ПО.
Ну раз ты отправлял заявку, то должен был убедиться в работоспособности и в версиях на Linux, не говоря про Mac, если на Windows работает у тебя, то не факт что и на остальных работает.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя karaulov
сообщение 6.12.2021, 10:19
Сообщение #20


Стаж: 15 лет

Сообщений: 1077
Благодарностей: 435
Полезность: 465

Цитата(XyLiGaN @ 6.12.2021, 11:07) *
karaulov, Старых ОС? Это ты о каких имеешь ввиду?
У меня допустим сервер стоит на ОС Debian 12 со всем последним ПО.
Ну раз ты отправлял заявку, то должен был убедиться в работоспособности и в версиях на Linux, не говоря про Mac, если на Windows работает у тебя, то не факт что и на остальных работает.

Думал там разработчики проверят перед релизом) Я там прямо написал что не проверял нигде кроме Windows )


https://github.com/alliedmodders/amxmodx/pull/1026 это исправит проблему.

(Оказалось не было возможности использовать std:: т.к у них своя библиотека используется https://github.com/alliedmodders/amtl, но там не было таймеров нужной точности кроссплатформенных, активировал поддержку std:: все должно быть норм теперь )


Хотя лучше будет потом добавить счетчик производительности в amtl и уже оттуда использовать как у них принято, только недавно узнал что у них своя библиотека используется.
Там похоже разработчик который принимает PR сам не был вкурсе, мне https://github.com/alliedmodders/amxmodx/pu...sion_r761138542 намекнули )

Отредактировал: karaulov, - 6.12.2021, 10:31
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
2 страниц V   1 2
 
Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: