35 votos

Php de Windows 7 + Symfony2 terriblemente lento

Este es un tema que me ha tenido durante mucho tiempo. Quiero ejecutar aplicaciones PHP en mi ordenador con windows y tiene un tremendo tiempo de carga, alrededor de 10 a 25 segundos. He intentado muchas cosas:

  • Primero probé con un simple instalación de XAMPP
  • He leído WAMP puede ser más rápido, así que traté de WAMP, demasiado. Me dio los mismos resultados
  • Luego he instalado un servidor nginx con PHP, pero no ayuda tampoco
  • Por último, he instalado un Ubuntu 11.10 en VirtualBox y he compartido mis archivos de windows que contiene mi proyecto, pero el resultado fue aún peor: más de 22 segundo tiempo de carga de cada momento.

ACTUALIZACIÓN: me han tratado de APC - se ha mejorado un poco, pero todavía 6-8 seg/página

He subido mis archivos a un servidor linux(alojamiento compartido), en el que se ejecuta en alrededor de 300 a 500 ms. En la instalación de XAMPP, he intentado ejecutar otro (es decir, no Symfony2) aplicaciones(por ejemplo phpmyadmin), que también eran más lentos que en el hosting compartido, pero no extremadamente lento, con 2-3 seg tiempo de carga. Hasta que me cambie a Linux como el principal sistema operativo, ¿cómo podría mejorar el rendimiento? Tengo un portátil con i7 CPU, RAM de 4 GB, 5400 RPM unidad de disco duro, Win7 x64.

Gracias por su ayuda!

UPDATE2: Por alguna misteriosa razón mi enrutamiento de Symfony no trabajo con fcgid (me dio un error 404 para todo) así que me fui de nuevo para el uso de PHP como un módulo. Ahora, se ha convertido en el peor (peor de lo que solía ser como un módulo): modo app 20-25 seg, y en dev modo, más de 30 años cada vez, así que tengo un error de tiempo de espera, y es el mismo con o sin APC habilitado.

Aquí usted puede ver este error. Este es reproducibles: cada vez que se llega a un punto diferente al de la ejecución de un plazo de 30 años:

enter image description here

24voto

Simon Fakir Puntos 83

He luchado mucho con este problema:

ACTUALIZACIÓN

A partir de PHP 5.5 ha integrado ahora el PHP OPCache, esto acelera el tiempo de ejecución. En mi instalación de una solicitud completa con acceso a bases de datos se lleva a 180 ms ahora.

  1. Actualizar a la última versión de php
  2. Habilitar OPCache
  3. Deshabilitar xdebug
  4. Conjunto de realpath_cache_size = 2M como DemonTPx mencionado

php.ini cambios:

realpath_cache_size = 2M
[XDebug]
xdebug.profiler_enable = 0
xdebug.remote_enable = 0
[opcache]
zend_extension = "C:\xampp18\php\ext\php_opcache.dll"
opcache.enable = 1
opcache.enable_cli = 0
opcache.memory_consumption = 128
opcache.interned_strings_buffer = 8
opcache.max_accelerated_files = 4000

¿Por qué es más lento que Windows Unix?

Como se ha discutido aquí, PHP es muy lento en file_exists, y filemtime() en windows. desde Symfony2 es el uso de estas funciones en dev modo mucho. no vamos a entrar bajo 700ms en windows.

Una solución podría ser WinCache que fue desarrollado por microsoft para resolver este problema en IIS. Pero como esto sólo funciona en varias versiones de Windows y también con IIS no es la solución para mí.

Alternativa

También una buena solución que puedo recomendar es tener una Máquina Virtual Linux en Virtualbox. Esto es fácil de configurar y es también más como el entorno de producción.

la buena suerte.

19voto

DemonTPx Puntos 1277

Tengo el mismo problema exacto. Ajuste lo siguiente en php.ini aumentar el rendimiento para mí de ~ 800ms a ~ 300ms:

php.ini:

realpath_cache_size = 2M

Todavía no la ~ 100ms recibo de una máquina unix, pero que hace la diferencia por lo menos

8voto

halfer Puntos 8455

He tenido un problema similar con symfony 1 por un tiempo en XP y Server 2003. La solución fue instalar un acelerador PHP (eAccelerator para nosotros, APC podría ser una mejor apuesta en estos días), además de FastCGI/fcgid.

Addendum: hace años que no he utilizado Apache en Windows. Yo, en general, han sido de la opinión de que su desempeño ha sido llegar constante y mejor, en vez de empeorar; sin embargo, como con la mayoría de las inusual set-ups, YMMV. Como por mi comentario anterior, te recomiendo preguntar a su pregunta en Apache Salón, donde me previamente han recibido algunos grandes consejos de expertos.

Si recuerdo correctamente, se puede ofrecer un servicio de Apache binario compilado con las mejores herramientas que la estándar ofrecidos en la página web de Apache.

1voto

Ekrem Puntos 191

Creo que tienes un problema con el mecanismo de almacenamiento en caché. Consulte el directorio de app\cache. tiene que haber una carpeta llamada dev. Si no existe o si está vacía comprobar permisos de carpeta. Cuando eliminar dev y prod directorios app\cache directorio tarda 18 segundos en cargar la página pero después de se tarda sólo 500 ms.

1voto

Vincent Puntos 11

Hace algunos años tuve el mismo problema. ¿Que software antivirus corre en segundo plano? Tratar de cambiar o desactivar para fines de desarrollo. También podría ser algunos servicios de indexación en segundo plano. Symfony 2 consta de > 15000 archivos con proveedores :) También intente hacerlo de la forma clásica reinstalando Windows desde cero. Mis sitios toma generalmente de 100-500ms y mi laptop es más lento que el tuyo. (Intel C2D P8600)

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X