de mi entender, si utiliza un programa de caché de PHP como APC, eAccelerator, etc., los códigos de operación se almacenarán en la memoria para una ejecución más rápida en las solicitudes posteriores. Mi pregunta es, ¿por qué SIEMPRE no sería mejor/más rápido compilar tus guiones, suponiendo que estés usando un compilador como phc o incluso HPHP (aunque sé que tienen problemas con los constructos dinámicos)? ¿Por qué molestarse en almacenar códigos de operación ya que Zend Engine tiene que volver a leerlos, que usa las funciones C para ejecutarlo, cuando simplemente puede compilar y omitir ese paso?Cuestión de caché de PHP vs compilar
Respuesta
No puede simplemente compilar en c y hacer que su script php se ejecute de la misma manera. HPHP realiza una compilación real, pero no admite todo el superconjunto de las características de php.
Otros compiladores en realidad solo incrustan un intérprete de php en el binario por lo que en realidad no está compilando el código de todos modos.
PHP no está destinado a ser compilado. El almacenamiento en caché de código de operación es muy rápido y lo suficientemente bueno para el 99% de las aplicaciones que existen. Si tiene nivel de tráfico de facebook y ya ha optimizado su back-end db, la compilación podría ser la única forma de aumentar el rendimiento.
PHP no es una capa delgada para la biblioteca estándar.
gracias por tomarse un tiempo para responder. ¿Puedes explicar mejor a qué te refieres cuando dices "PHP no es una capa delgada para la biblioteca estándar"? – blacktie24
Si PHP no tiene eval()
, probablemente sea posible realizar una traducción binaria directa compilada PHP- con facilidad. Pero dado que PHP puede construir/ejecutar scripts dinámicamente sobre la marcha a través de eval(), no es posible hacer un binario completo. Cualquier binario debería necesariamente contener la totalidad de PHP porque el compilador no tendría idea de lo que su código dinámico podría hacer. Pasarías de un pequeño script de 1 o 2k a un enorme binario de varios megabytes.
thx para responder! Asumiendo que no uso eval(), y solucioné el problema de las construcciones dinámicas (recibí otra pregunta sobre compiladores y construcciones dinámicas en otro hilo, que publiqué como comentario en mi pregunta original), ¿sería entonces? eficiente para compilar? – blacktie24
No sé acerca de 'eficiente', pero no puedo ver por qué no sería posible. –
- 1. Control.Parallel compilar cuestión en Haskell
- 2. matriz cuestión de metadatos (líneas de caché)
- 3. Scala cuestión de herencia: val vs def
- 4. Session VS File VS Memcache para un caché en PHP?
- 5. php - empujar matriz en matriz - cuestión clave
- 6. DevExpress XPO vs NHibernate vs Marco de la entidad: cuestión actualización de base de datos
- 7. página de caché usando php
- 8. Java cuestión de sintaxis
- 9. MemCache vs Almacenamiento en caché de Azure
- 10. La elección de una técnica de almacenamiento en caché de PHP: caché de resultados en archivos de caché de código de operación vs.
- 11. caché Memcached vs SQL Server
- 12. Caché usando PHP cURL
- 13. compilar PHP con scripts ant
- 14. cuestión arquitectónica
- 15. Caché de salida de Apache/PHP
- 16. PHP acelerador vs Justo a Tiempo Compilación
- 17. tiempo Run tiempo VS Compilar (NET)
- 18. UnmarshalException - Espacio de nombres ¿Cuestión?
- 19. C# Matemáticas cuestión de clase
- 20. Operadores de Java cuestión interesante
- 21. Perl variable cuestión de alcance
- 22. Caché de datos para principiantes en PHP
- 23. Almacenamiento en caché de una matriz PHP
- 24. Php (eval vs call_user_func vs funciones variables ...)
- 25. nginx/apache/php vs nginx/php
- 26. caché compilar desde Expresión <Func<T>>
- 27. Almacenamiento en caché Salida JSON en PHP
- 28. PHP vs. servidor de aplicaciones?
- 29. Python vs velocidad de PHP
- 30. Velocidad de PHP vs JavaScript?
También hay una parte 2 a esta pregunta, que comencé un hilo separado para: http://stackoverflow.com/questions/6525187/why-are-dynamic-constructs-difficult-for-php-compilers-hphp – blacktie24