Eu sei que você pode minimizar o PHP, mas estou me perguntando se há algum ponto. PHP é uma linguagem interpretada, portanto, será executada um pouco mais devagar do que uma linguagem compilada. Minha pergunta é: os clientes veriam uma melhora visível na velocidade de carregamento das páginas e tal se eu reduzisse meu PHP?
Além disso, existe uma maneira de compilar o PHP ou algo semelhante?
Respostas:
O PHP é compilado em bytecode, que é então interpretado em cima de algo semelhante a uma VM. Muitas outras linguagens de script seguem o mesmo processo geral, incluindo Perl e Ruby. Não é realmente uma linguagem tradicional interpretada como, digamos, BASIC.
Não haveria aumento de velocidade efetivo se você tentasse "reduzir" a fonte. Você obteria um grande aumento usando um cache de bytecode como o APC .
O Facebook introduziu um compilador chamado HipHop que transforma a fonte PHP em código C ++. Rasmus Lerdorf, um dos grandes caras do PHP fez uma apresentação para Digg no início deste ano que cobre as melhorias de desempenho dadas pelo HipHop. Resumindo, não é muito mais rápido do que otimizar o código e usar um cache de bytecode. O HipHop é um exagero para a maioria dos usuários.
O Facebook também revelou recentemente o HHVM , uma nova máquina virtual baseada em seu trabalho de fazer o HipHop. Ainda é bastante novo e não está claro se irá fornecer um grande impulso de desempenho para o público em geral.
Apenas para ter certeza de que está declarado expressamente, leia a apresentação na íntegra. Ele aponta várias maneiras de benchmark e código de perfil e identificar gargalos usando ferramentas como xdebug e xhprof , também do Facebook.
fonte
Esqueça a ideia de minimizar o PHP em favor de usar um cache de opcode, como
PHP Accelerator
, ouAPC
.Ou algo como
memcached
fonte
Com algumas reescritas (nomes de variáveis mais curtos), você pode economizar alguns bytes de memória, mas isso também raramente é significativo.
No entanto, eu projeto alguns de meus aplicativos de uma forma que permite concatenar scripts de inclusão. Com
php -w
ele pode ser compactado de forma significativa, adicionando um pequeno ganho de velocidade para inicialização do script. Em um servidor habilitado para opcode, no entanto, isso salva apenas algumas verificações de mtime de arquivo.fonte
Esta é menos uma resposta do que um anúncio. Estou trabalhando em uma extensão PHP que traduz opcodes Zend para rodar em uma VM com tipagem estática. Ele não acelera o código PHP arbitrário. Ele permite que você escreva um código que execute muito mais rápido do que o PHP normal permite. A chave aqui é a digitação estática. Em uma CPU moderna, uma linguagem dinâmica corrói a penalidade de erro de predição do branch à esquerda e à direita. O fato de que os arrays PHP são tabelas de hash também impõe alto custo: muitas previsões erradas de ramificações, uso ineficiente de cache, pré-busca de memória insuficiente e nenhuma otimização SIMD. Erros de previsão de branch e falhas de cache em particular são o calcanhar de Aquiles para os processadores atuais. Minha pequena VM contorna esse problema usando tipos estáticos e array C em vez de tabela de hash. O resultado acaba sendo cerca de dez vezes mais rápido. Isso está usando interpretação de bytecode. A extensão pode opcionalmente compilar uma função por meio do gcc. Nesse caso, você obtém de duas a cinco vezes mais velocidade.
Aqui está o link para todos os interessados:
https://github.com/chung-leong/qb/wiki
Novamente, a extensão não é um acelerador PHP geral. Você tem que escrever um código específico para ele.
fonte
Sim, há um ponto (não técnico).
Seu hoster pode espionar seu código em seu servidor. Se você minimiza e torna feio, é mais difícil para os espiões roubarem suas idéias.
Uma razão para diminuir e tornar feio o php pode ser a proteção contra espionagem. Acho que o código feio deve ser um passo em uma implantação automática.
fonte
Existem compiladores PHP ... veja esta questão anterior para uma lista; mas (a menos que você seja do tamanho do Facebook ou esteja direcionando seu aplicativo para ser executado no lado do cliente) eles geralmente causam muito mais problemas do que valem
O cache de opcode simples proporcionará mais benefícios para o esforço envolvido. Ou crie o perfil de seu código para identificar os gargalos e, em seguida, otimize-o.
fonte
Você não precisa reduzir o PHP. Para obter um melhor desempenho, instale um cache Opcode; mas a solução ideal seria atualizar seu PHP para a versão 5.5 ou superior, porque as versões mais recentes têm um cache de opcode por padrão chamado Zend Optimiser que está tendo um desempenho melhor que os outros http://massivescale.blogspot.com/2013/06 /php-55-zend-optimiser-opcache-vs-xcache.html .
fonte