Java vs PHP Memoria / Consumo de CPU

8

Yo trabajo en una empresa basada en PHP. Hay un proyecto en el que queremos crear un servicio de back-end. Aquí, los miembros de nivel superior optan por PHP, aunque es más lento que Java. Su único punto de discusión es que Java es más pesado que PHP en el punto de vista de carga de memoria y CPU.

Jvm es más como un entorno de contenedores, si traes más equipaje consumirá mucho, pero el servicio que estamos hablando aquí será de mediana complejidad. Entonces, es probable que no sea muy exigente (¿o sí?)

Entiendo que esta pregunta se inclina mucho hacia la vaguedad, sin embargo, mi punto de reflexión es, ¿ese es siempre el mismo caso? ¿Que Java es más exigente con el hardware? Me gustaría saber las opiniones de todos los que tienen experiencia sobre cómo se ve el escenario real.

Shades88
fuente
2
En la mayoría de los casos, el lenguaje / plataforma no es el factor decisivo cuando se trata de velocidad. Si no ajusta correctamente una base de datos, por ejemplo, será lenta independientemente del idioma que se utilice.
GrandmasterB
2
No veo por qué Java ocuparía más CPU que PHP. En la mayoría de los casos, esperaría lo contrario, ya que generalmente habrá menos costos iniciales en cada solicitud.
Darius X.
1
@ Shades88 Bueno, entonces, tal vez tú o ellos deberían probar una pequeña prueba de concepto: algún módulo / parte del código que creen que necesitará mucha memoria y / o será lento en Java debería implementarse en ambos idiomas y ver cómo se comporta . Usted (ellos) podría sorprenderse por cosas como: las necesidades de memoria extra de Java en realidad no son mucho más de lo que necesita la versión de PHP, la versión de Java podría ser sustancialmente más rápida.
Shivan Dragon

Respuestas:

10

Si le preocupa la velocidad, escriba el back-end en un lenguaje compilado y rápido como desee, como C o C ++. Hay muchas herramientas de servicio web para crear servicios web C / C ++ simples que puede consumir desde sus clientes PHP.

Sin embargo, si desea codificarlo rápidamente y el rendimiento no es tan malo, escríbalo en PHP. También tiene el beneficio de tener las habilidades necesarias para hacer esto, por lo que es un doble bono.

Java no está muy inflado en comparación con PHP, podría ser un "paso adelante", pero tendrás que aprender todos los trucos y trucos que necesitas con cualquier sistema nuevo, y dudo que el beneficio valga la pena en comparación con solo escribiéndolo en PHP de inmediato. En la mayoría de los casos, si ya tiene las habilidades para hacerlo en PHP, esa debería ser la primera opción, la elección de hacerlo en un idioma diferente al de su área principal de especialización debe considerarse con mucho cuidado y solo elegirse si existe beneficios sobre su sistema primario (que no creo que haya en este caso)

gbjbaanb
fuente
¿Qué tal compilar PHP?
Виталий Олегович
1
usando Hiphop o Phalanger? Podría funcionar, pero la velocidad de instrucción de la CPU generalmente no es un problema de rendimiento tan grande en comparación con el funcionamiento del lenguaje: los éxitos de caché, el uso de memoria y la E / S son más importantes hoy en día. De cualquier manera, destaca que PHP es una mejor opción que Java para ellos.
gbjbaanb
1
Creo que si la mayoría de ellos conocen bien PHP y no necesitan un rendimiento muy alto, entonces PHP es el mejor lenguaje para ellos.
Виталий Олегович
1
Desearía que la gente dejara de sugerir "compilar PHP". HipHop no compila PHP. HipHop es un transformador de código fuente de PHP a C ++ (que luego se compila utilizando un compilador de C ++). HipHop es una solución para elegir el idioma incorrecto para la tarea.
Craige
2
@Craige: en realidad, HipHop ya no se compila en C ++, ahora es un motor JIT de tiempo de ejecución
Joeri Sebrechts
4

Muchas tiendas Java empresariales tienden a agregar muchas abstracciones y marcos (como ORM, EJB, spring, librerías de terceros, contenedores, etc.) a sus sistemas. A veces, estas abstracciones son significativas, pero a menudo terminan agregando hinchazón (memoria, CPU) y complejidad.

PHP, otoh, se puede usar prácticamente "tal cual", verrugas y todo. Pero con Java, sin duda necesitas hacer malabarismos con muchas más partes.

Por lo tanto, también debe tener en cuenta esas otras cosas antes de tomar una decisión.

Martin Wickman
fuente