Биты opcache.optimization_level
соответствуют:
- бит 0 - проход 1: CSE - устранение подвыражений констант Последовательности оптимизации ADD_CHAR / ADD_STRING конвертируют CAST (IS_BOOL , x) в BOOL (x) конвертировать INTI_FCALL_BY_NAME + DO_FCALL_BY_NAME в DO_FCALL
- бит 1 - проход 2: преобразовать постоянную операнды к ожидаемым типам Преобразование условных JMP с постоянными операндами Оптимизация статического BRK и CONT
- бит 2 - проход 3: Преобразование $ a = $ a + expr в $ a + = expr Преобразование $ a ++ в ++ $ a Оптимизация серии JMP s
- бит 3 - проход 4: оптимизация PRINT и ECHO - удален
- бит 4 - проход 5: оптимизация блока (самый дорогой шаг оптимизации, который выполняет множество различных шаблонов оптимизации на основе графика потока управления CFG - )
- бит 8 - проход 9: регистр распределение (разрешает повторное использование временных переменных)
- бит 9 - проход 10: удалить NOP
Я посмотрел вокруг, чтобы узнать, могу ли я найти что-либо на любых шаблонах кода, которые он обрабатывает лучше других, но мне не повезло.
Информация из https: / /github.com/zendtech/ZendOptimizerPlus/blob/master/Optimizer/zend_optimizer.c и https://gist.github.com/ck-on/4959032?ocp.php
задан sam 30 December 2018 в 14:58
поделиться