Windows 7 php + Symfony2 terriblement lent

C'est un problème que j'ai eu pendant un long moment. Je veux exécuter des applications PHP sur mon ordinateur windows et il a terriblement élevé du temps de chargement, autour de 10 à 25 secondes. J'ai essayé beaucoup de choses:

  • J'ai d'abord essayé une simple installation de XAMPP
  • J'ai lu WAMP peut-être plus rapide, donc j'ai essayé de WAMP, trop. Il m'a donné les mêmes résultats
  • Puis j'ai installé un serveur nginx avec PHP, mais ça n'a pas aidé non plus
  • Enfin, j'ai installé une Ubuntu 11.10 dans VirtualBox et j'ai partagé mon windows fichiers contenant mon projet, mais le résultat était encore pire: plus de 22 deuxième temps de chargement à chaque fois.

Mise à JOUR: j'ai même essayé de l'APC - il amélioré un peu, mais encore de 6 à 8 sec/page

Je l'ai transféré mes fichiers sur un serveur linux(hébergement mutualisé), sur lequel il s'exécute en environ 300-500 ms. Sur l'installation de XAMPP, j'ai essayé d'exécuter d'autres (c'est à dire pas de Symfony2) applications(phpmyadmin par exemple), qui étaient aussi plus lent que sur l'hébergement mutualisé, mais pas extrêmement lent, avec 2-3 sec temps de chargement. Jusqu'à ce que je change de Linux comme OS principal, comment pourrais-je améliorer les performances? J'ai un ordinateur portable avec un i7, 4 GO de RAM, HDD 5400RPM, Win7 x64.

Merci pour votre aide!

UPDATE2: Pour quelque mystérieuse raison, ma Symfony routage ne fonctionne pas avec fcgid (il m'a donné une erreur 404 pour tout) je suis donc de retour pour l'utilisation de PHP en tant que module. Maintenant, il est devenu le pire (le pire qu'elle ne l'habitude d'être en tant que module): le mode app 20-25 sec, et le dev mode, plus de 30s à chaque fois, donc, je reçois une erreur de dépassement de délai, et c'est la même avec ou sans l'APC activé.

Ici vous pouvez voir cette erreur. C'est la traçabilité: chaque fois qu'il atteint un autre point de l'exécution au sein de 30s:

Windows 7 php + Symfony2 terriblement lent

  • Si APC vous a donné aucune amélioration, j'avais soupçonner qu'il était mal configuré. Je ne pense pas que le fait d'avoir un accélérateur PHP ne ferait aucune différence avec n'importe quelle application, même si le processus PHP est resté dans la mémoire via FastCGI. Ne APC offre une application web pour avoir un aperçu du cache d'opcode? Nous avons eu ce pour eAccelerator, qui je pense aurait été utile si les pages n'étaient pas de mise en cache.
  • Maintenant, je vais réessayer avec les APC, et dire vous les résultats.
  • Résultats: il est mieux maintenant, mais encore de 6 à 8 sec/page. Une idée?
  • Qu'avez-vous changé? Si APC offert une amélioration, alors vous pouvez choisir de modifier votre message afin de refléter le fait que, et de les enregistrer sur la confusion :)
  • J'ai fourni deux autres idées sur ma réponse ci-dessous.
  • J'ai activé l'extension apc, et a changé de symfony2 autoload selon ceci: symfony.com/doc/current/book/performance.html
  • Mesurez-vous Symfony2 performance en dev mode ou en mode prod? Ce n'profiler dire?
  • - Je voir le temps de chargement de dev mode, mais il n'est pas plus rapide en prod mode.
  • Hmm... capture d'écran du générateur de profils (en particulier les synchronisations de données) et de le coller dans votre question.
  • J'ai mis à jour la question, s'il vous plaît avoir un coup d'oeil. Maintenant c'est encore pire.
  • Hmm. Cette démarche est-elle vide? - pour vérifier la performance brute, vous devriez juste être en train de servir un hello world chaîne. Personnellement, je préfère persister avec fcgid. Il a travaillé pour moi assez facilement, mais il a été quelques années depuis que j'ai mis que sur Windows.
  • (Aparté: si vous êtes coincé, puis les saisir vous-même une copie de VirtualBox, l'installer sur votre machine Windows, et installer un serveur LAMP à l'intérieur. Va vous et en cours d'exécution assez rapidement)
  • Comme je l'ai écrit ci-dessus ubuntu dans virtualbox n'était pas mieux. J'ai fait un test de référence(source: frankdavid.hu/files/benchmark.php.txt), il s'exécute dans 600-800ms alors que sur le serveur linux, il s'exécute en moins de 1ms!
  • Je suis à court de choses à suggérer, mais ~600ms n'est pas trop mal pour ce que je suppose est une machine de dev. Il est tout à fait possible de dev sous Windows et de les déployer sur Linux (sûrement "ubuntu dans virtualbox n'était pas mieux" ne peut pas être le cas, si vous avez de la 600ms au lieu de 30!).
  • Non, vous devez vous m'avez mal compris. 600 ms est le moteur d'exécution du script de test sur windows alors que sur l'hébergement linux(machine distante) son sous 1ms. Je n'ai pas de relancer le test sur ma virtualbox ubuntu. Ubuntu va mon projet symfony2 dans 20-25 sec.
  • Avez-vous installé et pas en cours d'exécution Adobe ColdFusion sur la même machine?
  • eh bien, je viens de répéter ce que vous avez dit: "Comme je l'ai écrit ci-dessus ubuntu dans virtualbox n'était pas mieux. J'ai fait un test de référence... il tourne dans les 600-800ms alors que sur le serveur linux, il s'exécute en moins de 1ms". Cependant, je suis maintenant correctement les confondre: "Ubuntu va mon projet symfony2 dans 20-25 sec". Je pensais que c'était Windows qui était très lent?
  • Permettez-moi de répéter ma suggestion précédente: "capture d'écran du générateur de profils (en particulier les synchronisations de données) et de le coller dans votre question" (de la machine, avec 20-25sec timings).
  • Maintenant, il se charge en 10-15s à nouveau, mais je ne vois tout moment les données du profileur, bien que j'ai vérifié toutes les pages plusieurs fois. Je ne vois que ces lignes dans le journal: Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\ProfilerListener::onKernelRequest". Notified event "kernel.request" to listener "Symfony\Bundle\FrameworkBundle\EventListener\RouterListener::onEarlyKernelRequest".
  • Avez-vous trouvé la solution? J'ai un problème. PHP fonctionne bien dans mon Ubuntu, mais assez lent sur Windows.
  • Non, je n'ai pas. Même php5.4 c'est tellement lent sur mon ordinateur portable.
  • coller votre capture d'écran de votre synchronisation profil d'un lien dans les commentaires, sinon il n'y a rien beaucoup de frais à avancer. Si vous avez confiance en vous débogueur, essayez d'isoler la partie de Symfony2 qui est à l'origine du ralentissement. Juste deviner peut être un fichier appel système qui n'est pas mis en cache sur Windows?
  • J'en ai eu marre avec l'ensemble de la chose et a retiré le serveur à partir de mon ordinateur. Peut-être que plus tard je vais le réinstaller, puis je vais envoyer des captures d'écran. Tout ce que je peux vous dire est que tout est lent. J'ai essayé avec différents projets, différentes sf versions(2.0, 2.1), les différentes versions de php(5.3.* TS, NTS, 5.4), il était lent dans la console(exécution de la sf commandes) et dans le navigateur web. Il me semble donc être un problème commun. Edit: je viens de remarqué que votre message n'était pas adressé à moi, quoi que...
  • J'ai le même problème: projet symfony2 temps de charge est de 8 à 15 secondes sur wamp windows et moins de 500ms sur mon serveur distant sous ubuntu (très basique, 2€/mois de la solution). J'ai essayé plusieurs config php changements pour aucun résultat...

InformationsquelleAutor David Frank | 2012-03-24