Обновил тест скорости.
![](http://s3.hostingkartinok.com/uploads/images/2014/03/2ff0f4a62b6024ca39fcc73fff275460.png)
Скачать его можно здесь:
http://rghost.ru/52839480
В тест добавлены 2 новых вида команд: стандартные (обозначены, как STD) и на командном процессоре FCMD.
Как видно, стандартные команды (при количестве в 10 штук) работают медленнее остальных. Отрыв особенно заметен в случае, когда у команд есть параметры.
Недавно до меня дошёл миф о том, что если в моде мало команд, то лучше не использовать никаких командных процессоров, якобы стандартные команды будут работать быстрее.
Сейчас мы попробуем доказать или опровергнуть его.
Итак, в скрипте cmdtest.pwn есть макрос
PROFILE_ITERS_MINOR, он позволяет указать заданное количество команд для каждого командного процессора.
Изменив его значение на
1 (вместо
10 по умолчанию), можно смоделировать ситуацию, когда в моде всего 1 команда, и измерить быстродействие каждого командного процессора.
Приступим. Ищем в самом начале скрипта строку
PHP код:
#define PROFILE_ITERS_MINOR 10
и заменяем её на
PHP код:
#define PROFILE_ITERS_MINOR 1
Затем компилируем скрипт, запускаем сервер и смотрим на результат.
Для ленивых, выложу то, что получилось у меня:
Открыть/закрыть
На данном скриншоте я включил JIT, дабы отсеять лишние вопросы о быстродействии стандартных команд с этим плагином.
Как видно, некоторые командные процессоры действительно начинают работать медленнее, чем стандартные команды. Впрочем, DC_CMD обгоняет по быстродействию стандартные команды в 7 раз, даже всего при 1 команде и с JIT.