Consumo de memória / CPU Java vs PHP

8

Eu trabalho em uma empresa baseada em PHP. Há um projeto em que queremos criar um serviço de back-end. Os membros seniores aqui estão optando pelo PHP, mesmo que seja mais lento que o Java. O único argumento deles é que o Java é mais pesado que o PHP no ponto de vista da memória e do carregamento da CPU.

A JVM é mais como um ambiente de contêiner, se você trouxer mais bagagem, ela consumirá muito, mas o serviço que estamos falando aqui será de média complexidade. Então, é provável que não seja muito exigente (ou será?)

Entendo que esta questão se inclina fortemente para a imprecisão, no entanto, meu ponto de ponderação é: esse é sempre o mesmo caso? Que java é mais exigente de hardware? Gostaria apenas de saber as opiniões de todos que vocês experimentaram sobre como é o cenário atual.

Shades88
fonte
2
Na maioria dos casos, o idioma / plataforma não é o fator decisivo no que diz respeito à velocidade. Se você não ajustar adequadamente um banco de dados, por exemplo, será lento, independentemente do idioma usado.
precisa
2
Não vejo por que o Java ocuparia mais CPU que o PHP. Na maioria dos casos, eu esperaria o contrário, pois normalmente haverá menos custos de inicialização em cada solicitação.
Dario X.
1
@ Shades88 Bem, então, talvez você ou eles devam tentar uma pequena prova de conceito: algum módulo / parte do código que eles acham que tem muita memória e / ou lentidão no Java deve realmente ser implementado nas duas linguagens e ver como ele se comporta . Você (eles) pode se surpreender com coisas como: as necessidades de memória extra do Java não são muito além daquilo que a versão PHP precisa, a versão do Java pode ser substancialmente mais rápida.
Shivan Dragon

Respostas:

10

Se você estiver preocupado com a velocidade, escreva o back-end em uma linguagem compilada e rápida como você, como C ou C ++. Existem muitas ferramentas de serviço da web para criar serviços web simples em C / C ++ que você pode consumir de seus clientes PHP.

No entanto, se você quiser codificá-lo rapidamente e o desempenho não for tão ruim, escreva-o no PHP. Você também tem o benefício de já ter as habilidades necessárias para fazer isso, então isso é um bônus duplo.

O Java não é muito inchado em comparação ao PHP, pode ser um "passo em frente", mas você terá que aprender todas as dicas e truques que você precisa em qualquer sistema novo, e duvido que o benefício valha a pena em comparação com apenas escrevendo em PHP imediatamente. Na maioria dos casos, se você já possui as habilidades necessárias para fazê-lo em PHP, essa deve ser a primeira escolha, escolhendo fazê-lo em um idioma diferente da sua principal área de especialização e deve ser cuidadosamente considerado e escolhido apenas se houver uma definição definitiva. benefícios sobre o seu sistema primário (o que eu acho que não haverá neste caso)

gbjbaanb
fonte
Que tal compilar PHP?
226133 #
1
usando Hiphop ou Phalanger? Pode funcionar, mas a velocidade de instrução da CPU geralmente não é um problema de desempenho tão grande em comparação com o funcionamento do idioma - hits de cache, uso de memória e E / S são mais importantes atualmente. De qualquer forma, você destaca que o PHP é uma escolha melhor que o Java para eles.
precisa
1
Eu acho que se a maioria deles conhece bem o PHP e não precisa de um desempenho muito alto, o PHP é a melhor linguagem para eles.
Виталий Олегович
1
Eu gostaria que as pessoas parassem de sugerir "compilar PHP". O HipHop não compila o PHP. O HipHop é um transformador de código fonte do PHP para o C ++ (que é compilado usando um compilador do C ++). O HipHop é uma solução para escolher o idioma errado para a tarefa.
Craige
2
@Craige: Na verdade, HipHop já não compila para C ++, é agora um motor de tempo de execução JIT: github.com/facebook/hiphop-php/wiki
Joeri Sebrechts
4

Muitas lojas Java corporativas tendem a adicionar muitas abstrações e estruturas (como ORMs, EJBs, spring, libs de terceiros, contêineres etc.) a seus sistemas. Às vezes, essas abstrações são significativas, mas geralmente acabam adicionando inchaço (memória, CPU) e complexidade.

PHP, oh, pode ser usado praticamente "como está", verrugas e tudo. Mas com Java você certamente precisa conciliar muito mais peças.

Portanto, você precisa levar em consideração essas outras coisas antes de tomar uma decisão.

Martin Wickman
fonte