2010-07-23 17 views
18

¿Qué idioma es más rápido para web, Java o PHP?Java vs. Comparación de velocidad de PHP

+1

No se puede responder esta pregunta de forma objetiva, es demasiado abierta. ¿De qué estás midiendo la velocidad de? Podría ser solo argumentativo. – thomasrutter

+0

Dupe of http://stackoverflow.com/questions/2359718/php-speed-vs-other-languages? –

+0

http://benchmarksgame.alioth.debian.org/u64q/compare.php?lang=java&lang2=php –

Respuesta

20

La velocidad no importa

en la mayoría de los casos.

El procesamiento es económico. Codifique en qué se siente cómodo. Escribir el código apropiado va mucho más allá de la velocidad y luego elegir un idioma. Las convenciones de codificación sólida y el plan de diseño también ayudarán más.

+6

Además, sería fácil escribir aplicaciones rápidas o lentas en cualquiera de los lenguajes eligiendo estructuras de datos y algoritmos buenos o pobres. – sarnold

+3

@sarnold: Correcto. Otra cosa a considerar (aunque técnicamente fuera del alcance) es el tiempo de desarrollo. Si no eres un desarrollador de Java, no te va a gustar el ciclo de desarrollo J2EE de reenvasado, redespliegue y prueba. –

+0

¿Se pueden generar páginas web reales con java? Porque de otro modo el tiempo de inicialización de applet/VM mata cualquier sitio para mí. –

10

mejor respuesta que pude encontrar

"cosas a tener en cuenta:..

  1. aplicaciones web Java se compilan a bytecode Incluso JSP, que son compilado en tiempo de ejecución Esta es una ventaja sobre la mayoría de los usos de PHP, donde el Zend Optimizer no está en el uso .

  2. Los datos se pueden almacenar en caché en vivo servlet ejemplo - no hay manera directa/fácil de hacer esto en PHP que yo sepa (hay solo una única instancia de un servlet/JSP en la memoria)

    • Si alguien sabe cómo almacenar en caché los datos en PHP sin recurrir a feos hacks , por favor ilumíname!
  3. aplicaciones Java tienden a ser n niveles, que por lo general resulta en una aplicación más fácil de mantener en una ligera reducción del rendimiento . Esto probablemente suena trollish, pero honestamente: incluso dentro de Java el uso directo de JDBC siempre será más rápido que pasar por tres capas de objetos a la base de datos.

Pero es una aplicación Java de n niveles capaz de golpear la base de datos antes de lo que un guión sin compilar, cortado en marcha monolítica PHP? No creo que haya una respuesta a esa pregunta.

Dicho todo esto, estoy trabajando en un framework MVC n-tiered para php 5 (se llama Pure (http://www.sf.net/projects/php-pure)), así que mis aplicaciones PHP generalmente tienen n-tiered. Me preocuparé por la velocidad cuando y si se convierte en un problema. Por ahora, definitivamente no es un problema."

courtesy of krumms

+2

caché de PHP: http://php.net/manual/en/book.apc.php también para compartir un caché entre más de un servidor Memcache: http://php.net/manual/en/book.memcache.php – jonathanKingston

+2

Desde PHP 5.5, [OPcache] (http://php.net/manual/en/book.opcache.php) reemplazó el antiguo APC. –

3

No se puede responder a esta pregunta con una o la otra a menos que se defina lo que quiere medir la velocidad de.

Algunas cosas son mucho más rápidos en PHP (en una función nativa, por ejemplo), otras cosas son mucho más rápidas en Java.

+0

Hecho: http://benchmarksgame.alioth.debian.org/u64q/benchmark.php?test=all&lang=java&lang2=php&data=u64q –

+2

Y "otras cosas son mucho más rápidas que Java" porque no es preciso en absoluto. Java sopla prácticamente todo, funciona igual de rápido que C++ con la mayor carga. Lo único razonablemente más rápido sería C y el lenguaje ensamblador. Los servlets Raw de Java (sin el equipaje MVC) están gritando rápido. Hablo más de 10 idiomas de computadora con fluidez durante 35 años. He hecho todas las pruebas, todas las pruebas de rendimiento. Java domina y es el lenguaje más incomprendido, irónicamente también es el mejor para codificar por muchas razones. –

+0

Las funciones y extensiones nativas de PHP están escritas abrumadoramente en C, en muchos casos solo se conectan directamente a las funciones de biblioteca estándar de C. Cada vez que haces texto pesado o procesamiento de imágenes, por ejemplo, hacerlo a través de funciones incorporadas como expresiones regulares de Perl, búsqueda y manipulación de texto, GD/imagemagick, procesamiento de XML, etc. será rapidísimo en PHP porque la parte de tu código eso hace que el trabajo pesado sea en una función C. Para tomar un ejemplo artificial pero práctico, las expresiones regulares de Perl serán mucho más rápidas en PHP que en Java, porque en PHP es nativo. – thomasrutter

0

La intención de cada idioma es sustancialmente diferente de la otra, por lo que si estás debatiendo sobre qué usar para un tarea particular, generalmente debe basar la decisión en en la tarea (y qué tan adecuado es cada idioma para ello) en lugar de rendimiento.

Para el rendimiento sin procesar del código escrito en el lenguaje (en lugar de simplemente llamar al código en la biblioteca estándar), Java probablemente se ejecutará más rápido que PHP como regla extremadamente general. Si eso es importante, es probable que PHP no se adapte muy bien a la tarea en cuestión. velocidad

+0

No estoy de acuerdo. Base TODO en el rendimiento. Java es súper rendimiento, PHP simplemente no lo es. Si no conoce Java, apréndalo: es f # fácil, compilado y rápido. La programación cruda de Java Servlet no es muy diferente de la programación "orientada a objetos" de PHP (sí, comillas), excepto que con Java se obtiene una consistencia estricta en el lenguaje, PHP es un trabajo lento y trucado de un idioma. También QUIERES el estricto tipeo que ofrece Java, aún no lo conoces, pero lo sabes. –

+0

@JasonCaldwell: Gracias por la entrada, pero es posible que desee mirar mi perfil. Si bien estoy de acuerdo en que PHP es generalmente más lento que Java, es solo una cuestión de grado; al menos para mí, ninguno califica como cercano a "rápido" (pero si miras mi perfil, te darás cuenta de que en su mayoría escribe C++ y lenguaje ensamblador cuando la velocidad realmente importa). Si está basando (incluso cerca de) todo en el rendimiento, 1) probablemente esté cometiendo un error, y 2) no debería usar PHP * o * Java. –

+0

para WEB (esa es la pregunta). Si bien puede disfrutar el desarrollo de sitios web en lenguaje ensamblador (o C++), yo no (/ s). Entonces, ¿cuáles son las opciones? Muchos por supuesto, pero cuando se trata de rendimiento para aplicaciones web, Java es absolutamente el camino a seguir, sin dudas, sin excepción. Debería ABSOLUTAMENTE basar su trabajo en el rendimiento y la optimización, el tiempo es dinero, si su CPU está trabajando con un JITc menor o Bytecode está desperdiciando energía y recursos. Los servlets de Java puro (sin el equipaje MVC) tienen un alto rendimiento, igual a C++ en rendimiento. Estás mal informado. –

3

apartes, creo que el rendimiento de Java es bettern de PHP, pero el desarrollo de un proyecto PHP es más rápido

+3

Si tiene una tienda llena de desarrolladores de Java, es más rápido desarrollar un proyecto en Java. Me gustaría decir qué tan rápido se desarrolla en función de su especialidad. – thomasrutter

+1

y qué pasa si no tiene java ni php? – ultrajohn

+0

El desarrollo en PHP NO ES MÁS RÁPIDO que Java. Codigo en ambos. Por supuesto, depende de la complejidad, pero ambos son casi iguales en la codificación en casi todos los escenarios. –

33

Es muy difícil de responder como en Java teoría debería ser más rápido: se compilan previamente, cualquier trivial Algoritim se ejecutará más rápido en Java que en PHP y se ha realizado una gran cantidad de trabajo para optimizar Java desde mejorar el código, bibliotecas estándar, compiladores JIT, etc.

PHP se carga e interpreta cada vez que se al no usar el optimizador Zend, los objetos se inicializan en cada ejecución, incluso la cadena más trivial varaible es en realidad un objeto complejo con muchos métodos para respaldar.

El problema es que, en la práctica, los sitios PHP parecen funcionar más rápido con menos recursos.

Creo que esto se debe a que los desarrolladores de PHP adoptan un enfoque más directo del diseño y no se pierden tratando de implementar patrones de diseño exóticos y la implementación de infinitas abstracciones sin sentido.

+3

El último párrafo es interesante. ¿Tienes algún ejemplo de esto? Me encantaría ver cuando hago las cosas solo por el bien de "está bien porque es un patrón de diseño". Me atrapan en este tipo de cosas, pensando que lo estoy haciendo mal porque un libro lo dice. – johnny

+3

Java es MUCHO más rápido que PHP. –