LINUX.ORG.RU

PHP: где бы посмотреть генерируемый байт-код после работы оптимизатора OPcache?

 


0

1

Ковыряю тут байт-код генерируемый компилятором PHP, и его выхлоп меня несколько удивил:

function test(int $a, int $b) {
    print $a + $b;
    return $a + $b;
};
function name:  test
number of ops:  7
compiled vars:  !0 = $a, !1 = $b
line     #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   3     0  E >   RECV                                             !0      
         1        RECV                                             !1      
   4     2        ADD                                              ~2      !0, !1
         3        ECHO                                                     ~2
   5     4        ADD                                              ~3      !0, !1
         5      > RETURN                                                   ~3
   6     6*     > RETURN                                                   null

End of function test
Было бы логичнее если бы компилятор единожды вычислял сумму аргументов, и использовал её для вывода на экран и для возврата из функции. Но буквально вчера, стали доступны записи выступлений с devconf 2016, где один из разработчиков Zend Engine рассказал что оптимизатор байт-кода является частью OPcache.

Есть какой-нибудь способ получить байт-код, который выполняется после работы оптимизатора? На сколько я знаю инструмент vld не позволяет это сделать.

★★

Последнее исправление: shooter93 (всего исправлений: 2)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.