Aquí podría ser tu PUBLICIDAD


PHP vs. proceso de larga duración (Python, Java, etc.)?

votos
5

Me gustaría tener su opinión acerca de cómo escribir aplicaciones web en PHP en comparación con un proceso de larga duración que utiliza herramientas como Django o Turbogears para Python.

Por lo que sé: - En PHP, las páginas se extraen del disco duro todo el tiempo (aunque supongo que el sistema operativo mantiene los archivos en la memoria RAM por un tiempo después de haberlos accedido) - Las páginas se vuelven a compilar en el código de operación cada vez (aunque las herramientas de, por ejemplo, Zend pueden mantener una versión compilada en la RAM) - Obtener páginas cada vez significa leer datos globales y de sesión cada vez, y volver a abrir las conexiones a la base de datos.

Entonces, supongo que PHP tiene sentido en un servidor compartido (varios sitios que comparten el mismo host) para ejecutar aplicaciones con un uso moderado, mientras que un proceso de larga ejecución ofrece un mayor rendimiento con aplicaciones que se ejecutan en un servidor dedicado y están bajo uso intensivo.

Gracias por cualquier comentario.

Publicado el 12/03/2009 a las 17:22
fuente por usuario user73669
En otros idiomas...        العربية       

5 respuestas

votos
2

Después de aplicar Memcache, el almacenamiento en caché de códigos de operación y la agrupación de conexiones, la única diferencia real entre PHP y otras opciones es que PHP tiene una vida corta, se procesa en base, mientras que otras opciones son, por lo general, de larga duración basadas en subprocesos múltiples.

La ventaja que PHP tiene es que su suciedad es simple para escribir guiones. No tiene que preocuparse por la administración de la memoria (siempre se libera al final de la solicitud), y no tiene que preocuparse mucho por la simultaneidad.

La principal desventaja, puedo ver de todos modos, es que algunas cosas más avanzadas (a veces más alocadas) son más difíciles: resultados de precomputación, cachés de calentamiento, reutilización de datos existentes, solicitud de priorización y programación asincrónica. Estoy seguro de que la gente puede pensar en muchos más.

La mayoría de las veces, sin embargo, esas desventajas no son un gran problema. Puede escalar añadiendo más máquinas y usando más almacenamiento en caché. El desarrollador web promedio no tiene que preocuparse por el control de concurrencia o la administración de la memoria, por lo que tomar el minúsculo golpe de eliminarlos no es un gran problema.

Respondida el 12/03/2009 a las 06:00
fuente por usuario Richard Levasseur


Aquí podría ser tu PUBLICIDAD


votos
2
  • Con APC , que pronto se incluirá de forma predeterminada en bytecode compilado en PHP, se guardará en la RAM.
  • Con mod_php, que es la forma más popular de usar PHP, el intérprete de PHP permanece en la memoria del servidor web.
  • Con el almacén de datos de APC o Memcache , puede tener objetos persistentes en la RAM en lugar de, por ejemplo, siempre crearlos de nuevo obteniendo datos de DB.

En la implementación de la vida real, usarías todo lo anterior.

Respondida el 12/03/2009 a las 05:45
fuente por usuario vartec

votos
1

PHP está bien para su uso en mi opinión, los gastos generales de rendimiento rara vez se notan. Por lo general, otros procesos retrasarán el programa. Es fácil guardar en caché los programas PHP con algo como eAccelerator.

Respondida el 12/03/2009 a las 05:28
fuente por usuario me_here

votos
0

Como muchos otros han notado, PHP o Django serán tus cuellos de botella. Pulsar el disco duro para el bytecode en PHP es irrelevante para un sitio de mucho tráfico porque el almacenamiento en caché tomará el control en ese punto. Lo mismo es cierto para Django.

El modelo / vista y el diseño de la experiencia del usuario tendrán beneficios de orden de magnitud para el rendimiento sobre el idioma en sí.

Respondida el 12/03/2009 a las 08:26
fuente por usuario Adam Nelson

votos
-1

PHP es un lenguaje como Java, etc. ¡Solo tu ejecutable es el php binario y no el JVM! Puede establecer otro MAX-Runtime para PHP-Scripts sin ningún problema (si su proveedor de hosting compartido le permite hacerlo).

Donde se ejecutan sus aplicaciones no debe depender del tipo de servidor. Debería depender de los recursos utilizados por la aplicación (CPU-Time, RAM) y de lo que proporciona su servidor / servidor / host compartido.

Por razones de ajuste de rendimiento, debería echarle un vistazo a eAccelerator, etc. ¡Apache también admite módulos para la agrupación de conexiones! Ver mod_dbd . Si necesita escalar (como en un clúster) puede usar sistemas de caché de memoria distribuida como memcached !

Respondida el 12/03/2009 a las 05:27
fuente por usuario Martin K.