1. ex3m777 Пользователь

    Регистрация:
    27.02.15
    Сообщения:
    761
    Симпатии:
    337
    Пол:
    Мужской
    VKcom:
    ex3m777
    Skype:
    ex3m777
    Описание:
    Amxmodx Profiler - замена стандартного amxmodx, metamod-плагин, который позволит вам узнать ( в .txt логах) с какой скоростью выполняется вызов функций, stocks. Выполняет все те же функции, что и стандартный amxmodx, но ещё дополнительно измеряет скорость работы ваших плагинов.
    Благодаря этой модификации стало возможным оценить, как хорошо выполнена работа, как долго выполняются определенные части кода, как часто они выполняются.
    Вам не нужно перекомпилировать все плагины или изменить какие-либо модули .
    При смене карты вся информация профилирования будет записана в директории amxmodx/data/profiles/<pluginname.amxx>.txt
    Кроме того, были добавлены две новых функции (они не доступны в официальном ядре amxmodx ), что позволят вам профилировать отдельные части кода самостоятельно. Документацию для них можно найти в файле " profiler.inc "

    Установка:
    • делаем бекап стандартного amxmodx_mm_i386.so | amxmodx_mm.dll
    • далее заменяем тем что в архиве
    • в plugins.ini пишем напротив плагина profile
    Настройки:
    Добавлена новая переменная amx_profile (1 Def.), она схожа с amx_debug
    0 - профилирование отключено
    1 - только указанные плагины в списке будут тестироваться
    2 - все плагины будут тестироваться.

    Пример:
    adminchat.amxx profile
    amxbans.amxx profile
    damage_ranking.amxx profile

    В результате вы получите схожие логи
    Код:
    date: Sun Jun 07 15:34:19 2015 map: de_dust2
    type |                             name |      calls | time / min / max
    -------------------------------------------------------------------
       n |                  register_plugin |          1 | 0.000004 / 0.000004 / 0.000004
       n |                    register_cvar |          1 | 0.000060 / 0.000060 / 0.000060
       n |                   register_clcmd |          1 | 0.000006 / 0.000006 / 0.000006
       n |                   register_event |          2 | 0.000015 / 0.000006 / 0.000009
       n |                      menu_create |          4 | 0.000026 / 0.000005 / 0.000008
       n |                     menu_setprop |         10 | 0.000020 / 0.000002 / 0.000002
       n |                      file_exists |          3 | 0.000146 / 0.000027 / 0.000060
       n |                     menu_additem |         19 | 0.000052 / 0.000002 / 0.000005
       n |                            fopen |          3 | 0.004888 / 0.000066 / 0.004705
       n |                             feof |         75 | 0.000127 / 0.000002 / 0.000002
       n |                            fgets |         72 | 0.010969 / 0.000002 / 0.010763
       n |                            parse |         22 | 0.000049 / 0.000002 / 0.000003
       n |                             copy |         16 | 0.000028 / 0.000002 / 0.000002
       n |                       str_to_num |         14 | 0.000026 / 0.000002 / 0.000003
       n |                           fclose |          3 | 0.000180 / 0.000030 / 0.000104
       n |                         arrayset |         26 | 0.000061 / 0.000002 / 0.000005
       n |                      get_players |          3 | 0.000044 / 0.000004 / 0.000037
       p |                client_disconnect |          8 | 0.000166 / 0.000005 / 0.000125
       p |                  eGameCommencing |          1 | 0.000003 / 0.000003 / 0.000003
       p |                      eRoundStart |          3 | 0.000060 / 0.000016 / 0.000027
       p |                       plugin_cfg |          1 | 0.000475 / 0.000475 / 0.000475
       p |                      plugin_init |          1 | 0.000011 / 0.000011 / 0.000011
    19 natives, 4 public callbacks, 12 function calls were not executed.

    Исходники по всей видимости утеряны.
    Источник: alliedmods.net
    При копирование статьи ссылка на источник neugomon.ru обязательна
     

    Вложения:

    Последнее редактирование: 29.07.15
    pUzzlik, BaJIepbI4, Topgear и 2 другим нравится это.
  2. BaJIepbI4 Пользователь

    Регистрация:
    12.05.15
    Сообщения:
    1.090
    Симпатии:
    215
    Пол:
    Мужской
    Skype:
    BaJIepbI4_sky
    Может кто помочь понять как парвильно проанализировать полученные данные? :help:
     
  3. ex3m777 Пользователь

    Регистрация:
    27.02.15
    Сообщения:
    761
    Симпатии:
    337
    Пол:
    Мужской
    VKcom:
    ex3m777
    Skype:
    ex3m777
    Это инструмент для разработчиков
    Чтобы что-то понять нужно разбираться в pawn
     
  4. BaJIepbI4 Пользователь

    Регистрация:
    12.05.15
    Сообщения:
    1.090
    Симпатии:
    215
    Пол:
    Мужской
    Skype:
    BaJIepbI4_sky
    Ясно, спасибо
     
  5. гл0к Пользователь

    Регистрация:
    03.03.15
    Сообщения:
    798
    Симпатии:
    98
    Пол:
    Мужской
    ex3m777, да не обязательно же. Лично мне интересно только это - за сколько секунд в целом выполняется работа 1 плагина. Мне стоки и прочая павновская муть не нужна)
     
  6. gudaus Команда форума

    Регистрация:
    27.02.15
    Сообщения:
    1.578
    Симпатии:
    1.170
    Пол:
    Мужской
    Дак там же выводится список функций и время их выполнения в логе.
     
  7. wopox1337 Пользователь

    Регистрация:
    10.12.15
    Сообщения:
    27
    Симпатии:
    9
    Пол:
    Мужской
    Skype:
    wopox3
    Ни в коем случае не вздумайте использовать этот инструмент для критики. В разных плагинах, разных задачах код приходится применять разный.
    Разработчики AMXX плагинов, этим инструментом получают информацию, на основе которой принимают меры по оптимизации, в зависимости от сложности поставленной задачи.

    Для рядового админа, инструмент мало чем полезен, возможно поможет в сравнении нагрузок плагинов.
     
  8. VkriterT VIP user

    Регистрация:
    02.06.15
    Сообщения:
    461
    Симпатии:
    126
    Пол:
    Мужской
    Логи как то будут отличатся в зависимости от онлайна на сервере ?
    Или если я например буду тестить ночью, то машина на хостинг будет всяко менее загружена чем если я буду тестить днем, это будет влиять на показатели ?
     
  9. neygomon Его Темнейшество :j Команда форума

    Регистрация:
    26.02.15
    Сообщения:
    7.921
    Симпатии:
    4.320
    Пол:
    Мужской
    @VkriterT, да, если нативы привязаны к игрокам, тот же is_user_bot в путине
     
  10. VkriterT VIP user

    Регистрация:
    02.06.15
    Сообщения:
    461
    Симпатии:
    126
    Пол:
    Мужской
    @neygomon, Ясн, тогда для точности нужно на локалсервере измерять.
     
  11. neygomon Его Темнейшество :j Команда форума

    Регистрация:
    26.02.15
    Сообщения:
    7.921
    Симпатии:
    4.320
    Пол:
    Мужской
  12. VkriterT VIP user

    Регистрация:
    02.06.15
    Сообщения:
    461
    Симпатии:
    126
    Пол:
    Мужской
    Сразу спрошу пока пвесдотестов не наделал.
    1. Я включаю сервер, захожу, открываю вип меню. По очереди юзаю каждый пункт, выхожу и чекаю логи.
    2. Делаю все тоже самое но с другим вип меню.
    3. Сверяю логи.
    Это будет объективно ?
     
  13. neygomon Его Темнейшество :j Команда форума

    Регистрация:
    26.02.15
    Сообщения:
    7.921
    Симпатии:
    4.320
    Пол:
    Мужской
    @VkriterT, логи сейвятся только при смене карты