C'est un problème que j'ai depuis longtemps. Je veux exécuter des applications PHP sur mon ordinateur Windows et le temps de chargement est terriblement élevé, environ 10 à 25 secondes. J'ai essayé plusieurs choses :
- J'ai d'abord essayé une installation simple de XAMPP
- J'ai lu que WAMP pourrait être plus rapide, alors j'ai aussi essayé WAMP. J'ai obtenu les mêmes résultats
- J'ai ensuite installé un serveur nginx avec PHP, mais cela n'a rien donné non plus.
- Finalement, j'ai installé une Ubuntu 11.10 dans VirtualBox et j'ai partagé mes fichiers Windows contenant mon projet, mais le résultat était encore pire : plus de 22 secondes de chargement à chaque fois.
UPDATE : J'ai même essayé APC - cela s'est un peu amélioré mais toujours 6-8 sec/page
J'ai téléchargé mes fichiers sur un serveur linux (hébergement partagé), sur lequel il fonctionne en 300-500 ms environ. Sur l'installation XAMPP, j'ai essayé d'exécuter d'autres applications (c'est-à-dire pas Symfony2) (par exemple phpmyadmin), qui étaient aussi plus lentes que sur l'hébergement partagé, mais pas extrêmement lentes, avec un temps de chargement de 2-3 secondes. Jusqu'à ce que je passe à Linux comme système d'exploitation principal, comment pourrais-je améliorer les performances ? J'ai un ordinateur portable avec un processeur i7, 4 Go de RAM, un disque dur 5400RPM, Win7 x64.
Merci pour votre aide !
UPDATE2 : Pour une raison mystérieuse, mon routage Symfony n'a pas fonctionné avec fcgid (il m'a donné une erreur 404 pour tout) donc je suis revenu à l'utilisation de PHP comme module. Maintenant, c'est devenu le pire de tous les temps (pire qu'avant en tant que module) : en mode app 20-25 sec, et en mode dev, plus de 30s à chaque fois, donc j'obtiens une erreur de timeout, et c'est la même chose avec ou sans APC activé.
Ici vous pouvez voir cette erreur. Elle est reproductible : à chaque fois, elle atteint un point d'exécution différent dans les 30s :
0 votes
Si APC ne vous apporte aucune amélioration, je soupçonne qu'il est mal configuré. Je ne peux pas penser que le fait d'avoir un accélérateur PHP ne ferait aucune différence avec n'importe quelle application, même si les processus PHP restaient en mémoire via FastCGI. Est-ce qu'APC offre une application web pour regarder dans le cache des opcodes ? Nous avions cela pour eAccelerator, ce qui aurait été utile si les pages n'étaient pas mises en cache.
0 votes
Maintenant je vais réessayer avec APC, et vous dire les résultats.
0 votes
Résultats : c'est mieux maintenant, mais toujours 6-8 sec/page. Une idée ?
1 votes
Qu'avez-vous changé ? Si APC a proposé une amélioration, vous pouvez modifier votre message pour le refléter et éviter toute confusion.
:)
0 votes
J'ai fourni deux autres idées sur ma réponse ci-dessous.
0 votes
J'ai activé l'extension apc, et modifié symfony2 autoload en fonction de ceci : symfony.com/doc/current/book/performance.html
1 votes
Mesurez-vous les performances de Symfony2 en mode dev ou en mode prod ? Que dit le profileur ?
0 votes
Je vois le temps de chargement en mode dev, mais il n'est pas plus rapide en mode prod non plus.
0 votes
Hmm... faites une capture d'écran du profileur (en particulier des données de temps) et collez-la dans votre question.
0 votes
J'ai mis à jour la question, jetez-y un coup d'oeil. Maintenant, c'est encore pire.
1 votes
Hmm. Cette action est-elle vide ? - pour vérifier les performances brutes, vous devriez simplement servir un fichier bonjour le monde chaîne. Personnellement, je persisterais avec fcgid. Cela a fonctionné pour moi assez facilement, mais cela fait quelques années que je ne l'ai pas mis en place sous Windows.
0 votes
(A propos : si vous êtes bloqué, procurez-vous une copie de VirtualBox, installez-la sur votre machine Windows et installez un serveur LAMP à l'intérieur. Cela vous permettra d'être opérationnel assez rapidement.)
0 votes
Comme je l'ai écrit plus haut, ubuntu dans virtualbox n'était pas meilleur. J'ai fait un test de référence (source : frankdavid.hu/files/benchmark.php.txt ), il s'exécute en 600-800 ms alors que sur le serveur linux il s'exécute en moins de 1 ms !
2 votes
@DavidFrank - Je n'ai plus rien à suggérer, mais ~600ms n'est pas trop mal pour ce que je présume être une machine de développement. Il est tout à fait possible de développer sur Windows et de déployer sur Linux (sûrement "ubuntu dans virtualbox n'était pas mieux" ne peut pas être le cas, si vous obtenez 600ms au lieu de 30s !).
0 votes
Non, vous avez dû mal comprendre. 600 ms est le temps d'exécution du test script sur Windows alors que sur l'hébergement linux(machine distante) c'est moins de 1ms. Je n'ai pas exécuté le benchmark sur ma virtualbox ubuntu. Ubuntu exécute mon projet symfony2 en 20-25 sec.
0 votes
Avez-vous installé et non exécuté le service Adobe ColdFusion sur la même machine ?
0 votes
@DavidFrank - eh bien, je ne faisais que répéter ce que vous avez dit : "Comme je l'ai écrit plus haut, ubuntu dans virtualbox n'était pas meilleur. J'ai fait un test de référence... il tourne en 600-800ms alors que sur le serveur linux il tourne en moins de 1ms". Cependant, je suis maintenant vraiment confus : "Ubuntu exécute mon projet symfony2 en 20-25 sec". Je pensais que c'était Windows qui était le plus lent ?
0 votes
Permettez-moi de répéter ma suggestion précédente : "Faites une capture d'écran du profileur (en particulier des données de temps) et collez-la dans votre question" (de la machine avec des temps de 20-25sec).
0 votes
Maintenant, il se charge à nouveau en 10-15 secondes, mais je ne vois aucune donnée de temps dans mon profileur, bien que j'aie 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".
1 votes
Avez-vous trouvé une solution ? J'ai un problème. PHP fonctionne bien sur mon Ubuntu, mais est assez lent sur Windows.
0 votes
Non, je ne l'ai pas fait. Même php5.4 est si lent sur mon ordinateur portable.
0 votes
@nucleartux - collez la capture d'écran de votre profil de chronométrage dans un lien dans les commentaires - sinon, il n'y a rien de neuf à faire. Si vous êtes un débogueur expérimenté, essayez d'isoler la partie de Symfony2 qui cause le ralentissement. Juste une supposition - cela pourrait être un appel au système de fichiers qui n'est pas mis en cache sous Windows ?
0 votes
J'en ai eu marre de tout ça et j'ai supprimé le serveur web de mon ordinateur. Je le réinstallerai peut-être plus tard et j'enverrai des captures d'écran. Tout ce que je peux vous dire, c'est que tout est lent. J'ai essayé avec différents projets, différentes versions de sf (2.0, 2.1), différentes versions de php (5.3.* TS, NTS, 5.4), c'était lent dans la console (en exécutant les commandes sf) et dans le navigateur, aussi. Il me semble donc que c'est un problème commun. Edit : Je viens de remarquer que votre message ne m'était pas adressé, peu importe...
0 votes
J'ai le même problème : le temps de chargement des projets symfony2 est de 8 à 15 secondes sur wamp Windows et de moins de 500ms sur mon serveur distant sous ubuntu (une solution très basique à 2€/mois). J'ai essayé de nombreux changements de configuration php sans résultat...