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

    Регистрация:
    27.02.15
    Сообщения:
    761
    Симпатии:
    334
    Пол:
    Мужской
    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

    В результате вы получите схожие логи
    Код (Unknown Language):
    1. date: Sun Jun 07 15:34:19 2015 map: de_dust2
    2. type |                             name |      calls | time / min / max
    3. -------------------------------------------------------------------
    4.    n |                  register_plugin |          1 | 0.000004 / 0.000004 / 0.000004
    5.    n |                    register_cvar |          1 | 0.000060 / 0.000060 / 0.000060
    6.    n |                   register_clcmd |          1 | 0.000006 / 0.000006 / 0.000006
    7.    n |                   register_event |          2 | 0.000015 / 0.000006 / 0.000009
    8.    n |                      menu_create |          4 | 0.000026 / 0.000005 / 0.000008
    9.    n |                     menu_setprop |         10 | 0.000020 / 0.000002 / 0.000002
    10.    n |                      file_exists |          3 | 0.000146 / 0.000027 / 0.000060
    11.    n |                     menu_additem |         19 | 0.000052 / 0.000002 / 0.000005
    12.    n |                            fopen |          3 | 0.004888 / 0.000066 / 0.004705
    13.    n |                             feof |         75 | 0.000127 / 0.000002 / 0.000002
    14.    n |                            fgets |         72 | 0.010969 / 0.000002 / 0.010763
    15.    n |                            parse |         22 | 0.000049 / 0.000002 / 0.000003
    16.    n |                             copy |         16 | 0.000028 / 0.000002 / 0.000002
    17.    n |                       str_to_num |         14 | 0.000026 / 0.000002 / 0.000003
    18.    n |                           fclose |          3 | 0.000180 / 0.000030 / 0.000104
    19.    n |                         arrayset |         26 | 0.000061 / 0.000002 / 0.000005
    20.    n |                      get_players |          3 | 0.000044 / 0.000004 / 0.000037
    21.    p |                client_disconnect |          8 | 0.000166 / 0.000005 / 0.000125
    22.    p |                  eGameCommencing |          1 | 0.000003 / 0.000003 / 0.000003
    23.    p |                      eRoundStart |          3 | 0.000060 / 0.000016 / 0.000027
    24.    p |                       plugin_cfg |          1 | 0.000475 / 0.000475 / 0.000475
    25.    p |                      plugin_init |          1 | 0.000011 / 0.000011 / 0.000011
    26. 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.071
    Симпатии:
    210
    Пол:
    Мужской
    Skype:
    BaJIepbI4_sky
    Может кто помочь понять как парвильно проанализировать полученные данные? :help:
     
  3. ex3m777 Пользователь

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

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

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

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

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

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