JIT - A principal novidade do PHP 8. Como habilitá-la na nova versão da linguagem?

27 de julho de 2022
Ronaldo B.

O PHP 8 trouxe muitas novidades, mas uma das que mais chamou a atenção ou que pelo menos mais foi falada foi o JIT. Nós falamos sobre o que essa sigla significa e como ela impacta no desempenho de uma linguagem de programação em nosso artigo Qual a diferença entre linguagem compilada, interpretada e JIT (Just in Time)?.

Entretanto, como o JIT é uma novidade da versão 8 do PHP, neste artigo iremos mostrar como habilitar esse recurso no PHP e também dar nossa opinião sobre como o JIT poderá impactar o uso desta linguagem.

Nós mostramos em nosso Blog como realizar a instalação do PHP 8 tanto no Windows como no Linux. Você pode ter acesso a esse conteúdo nos links abaixo:

PHP 8 - Instalação e Configuração no Ubuntu 20.04 e Windows

PHP 8 no Windows 10 com servidor Nginx

Habilitando o OPcache no PHP

OPcache é uma extensão que permite armazenar o código PHP pré-compilado em cache, visando uma melhor performance da linguagem. O JIT foi implementado no PHP através dessa extensão. Por isso, a primeira coisa que precisamos fazer é habilitá-la.

Após ter instalado o PHP 8, vamos acessar o arquivo php.ini e habilitar a linha da configuração zend_extension, conforme vemos abaixo:

zend_extension=opcache

Note que para habilitar uma configuração no arquivo php.ini, basta retirar o sinal de ponto e vírgula (;) no início da linha.

Além dessa configuração, iremos habilitar as diretivas opcache.enable e opcache.enable_cli, conforme vemos abaixo:

opcache.enable=1
opcache.enable_cli=1

Ao executar a função phpinfo() em um arquivo, deveremos ver a seguinte seção de informações sobre o PHP:

Seção do OPcache nas informações do PHP

Agora o OPcache está habilitado. O próximo passo é habilitar o JIT a partir dessa extensão.

Habilitando o JIT no PHP 8

Precisamos inserir três diretivas para habilitar o JIT. É possível que você não as encontre no arquivo php.ini. Se for esse o caso, basta adicionar essas diretivas ao arquivo, ao invés de editá-las.

A primeira é a opcache.jit_buffer_size. Ela define a quantidade de buffer de memória que será reservada para a geração de código nativo. Por padrão essa diretiva é 0, o que desabilita o JIT. Assim, se desejamos habilitá-lo, basta informar uma quantidade de memória voltada para isso. Faremos isso no php.ini usando o seguinte código:

opcache.jit_buffer_size=100M

A segunda configuração é a opcache.jit. Ela define um conjunto de configurações para o JIT no PHP. Essa diretiva é um conjunto de quatro dígitos. Cada um deles representa uma configuração específica. O conjunto recomendado é o número 1235, mas poderíamos usar um número diferente se desejássemos. Essa diretiva ficará do seguinte modo:

opcache.jit=1235

Por fim, mas não menos importante, temos a diretiva opcache.jit_debug. Ela controla como o código será debugado, ou depurado. Essa configuração ficará da seguinte forma:

opcache.jit_debug=1

Agora, ao reiniciar o servidor e acessar as informações do PHP, veremos a seguinte linha no bloco do OPcache:

JIT habilitado no PHP

Note que agora o JIT está habilitado em nosso PHP ?.

Como o JIT irá ajudar a linguagem PHP?

O site do PHP nos traz um gráfico bem interessante que mostra algumas melhorias de performance ao realizar alguns testes de código com o JIT:

Gráfico de comparação de velocidade do PHP 8

Podemos notar que a diferença de velocidade é realmente impressionante. Entretanto, já foi constatado que é possível notar ainda mais o poder do JIT quando precisamos executar códigos que exigem um grande consumo de CPU, ou códigos que exigem um alto processamento de dados.

Talvez não estejamos tão acostumados com esse conceito em PHP visto que essa é uma linguagem voltada muito para a Web. Pensando nisso, a inserção do JIT pode trazer um novo horizonte de possibilidades para o PHP, agora fora da Web. Pense por exemplo em Inteligência Artificial, Machine Learning ou até mesmo Desenvolvimento de jogos. Todos esses são ambientes que requerem muito processamento de dados e que o PHP, até o momento, não se aventurou tanto.

Conclusão

A inclusão do JIT no PHP pode ser um divisor de águas para a linguagem. Isso significa que podemos estar presenciando um momento histórico, o começo da possível expansão do PHP, que poderá aumentar sua área de atuação, saindo do contexto único da Web e começando a “alçar novos voos”.

Todas essas são as possibilidades que o JIT pode trazer para o PHP. Mas apenas o tempo dirá quais dessas suposições se tornaram realidade. O que nos resta agora é aguardar e continuar estudando ?.

Até o próximo artigo :).

Hcode: Utilizamos cookies para a personalização de anúncios e experiências de navegação dentro de nosso site. Ao continuar navegando, você concorda com as nossas Política de Privacidade.