Pourquoi est-Symfony2 exécution de si mauvais dans les benchmarks et importe-t-il?
Mes collègues et moi sommes dans le processus de choix d'un framework web à l'élaboration d'un trafic de site web. Nous sommes vraiment bien avec node.js + express
et php + symfony2
. Les deux sont de grands cadres, mais nous sommes un peu inquiets au sujet de Symfony2, car elle semble être dépassé que par la plupart des frameworks web dehors là.
Voici les repères qui le prouve:
http://www.techempower.com/benchmarks/
Pour cette raison que nous allons probablement utiliser node.js + express, mais je me demande encore pourquoi est-Symfony2 exécution de si mauvais dans les benchmarks.
- Je trouve bizarre que le Zend Framework n'a pas été inclus dans le cadre de leur test, même si certains résultats intéressants autrement.
Vous devez vous connecter pour publier un commentaire.
En fin de compte, tout se résume à corriger cache manipulation...
symfony ou PHP, en général, EST plus lent que les autres langues ou cadres afin de vous offrir les outils nécessaires pour créer de riches, de sécuriser et de tests des applications web très rapide.
Si vous utilisez un proxy inverse comme Vernis et ESI ( edge side includes ) et servent les pièces de vos modèles, vous avez vraiment besoin d'avoir mis à jour par symfony. vous aurez une hyper rapide de l'expérience.
En outre, si vous utilisez un cache d'opcode comme APC et un optimisé de base de données un utilisateur humain ne sera pas réellement compte de la différence de quelques ms dans une application réelle.
Selon la demande je vais me plonger un peu plus profondément et vous donner un peu plus de choses à penser.
La mise en cache & Performance
Avec des nuages de services (s3,ec2,gae,...) à un coût quasi nul jumelé avec load-balancers, facilité de mise en service (chef,puppet,...) et tout cela funky stuff disponible, il est devenu facile et abordable pour les petites entreprises d'exécuter et de gérer des données de grande taille et/ou de fortes applications de trafic.
Plus de moyens de stockage de plus d'espace de cache - plus de puissance de calcul moyen plus rapide de cache warmimg.
choses que vous entendrez souvent si les gens parlent de php ou de cadre de performance:
Alors pourquoi ces sites ne se décomposent complètement? Parce que leur mise en cache des routines sont intelligents.
facebook
Saviez-vous par exemple que facebook ne si vous écrivez une mise à jour de statut?
Il ne permet pas de l'enregistrer dans une table de base de données avec tous vos mises à jour de statut et si un ami visites sur son stream tous les statuts de tous ses amis sont en train d'être récupérée à partir de la base de données avant d'être servi.
facebook écrit de votre statut à tous vos amis de nouvelles ruisseaux et commence réchauffement leur cache. Maintenant, tous les cours d'eau sont en cours de préparation pour le service et chaque fois qu'un de vos amis visites sur son stream il sera servi une version mise en cache; instantanément avec presque pas de code d'exécution concernées. Le flux est seulement montrer votre nouvellement créé état lorsque le cache de réchauffement de la planète est fini. nous parlons ms ici ...
Ce que nous dit-il? Moderne, très fréquenté des applications presque tout est servi de cache et l'utilisateur ne remarquera pas si le calcul de la page a pris 1ms ou 5 secondes.
Dans un "monde réel" scénario de l'utilisateur final, vous ne remarquerez aucune différence dans req/sec entre les cadres. Même avec des choses simples comme les micro-cache, vous pouvez avoir votre vps blog hébergé pas descendre instantanément une fois que vous l'avez fait sur hackernews de la page de destination.
En fin de compte le plus important, c'est ... est-ce que mon cadre à fournir les outils, la documentation et les tutoriels et des exemples ... pour obtenir cette chose entière et en cours d'exécution rapide & facile. symfony ne pour moi!
Si vous êtes coincé ... combien de personnes sont là prêts et capables de répondre à vos performances relatives des questions?
Combien d'applications du monde réel ont déjà été prises ou le seront dans un avenir proche être créé avec ce cadre?
vous choisissez une communauté par le choix d'un cadre !
... ok c'est pour les importe-t-il de la partie ... maintenant, revenons à ces points de référence 🙂
Repères & Configurations
Au cours de toutes ces brillantes couleurs et de fantaisie graphiques de l'indice de référence vous pouvez facilement passer à côté du fait qu'il existe une seule installation ( serveur web, base de données, ... ) testé avec chacun de ces cadres alors que vous pouvez avoir une grande variété de configurations pour chacun d'eux.
Exemple: au lieu d'utiliser symfony2+doctrineORM+mysql vous pouvez également utiliser symfony+doctrineODM+MongoDB.
MySQL, MongoDB ... ... Bases de données Relationnelles ... les Bases de données NoSQL ... ORM ... micro Orm ... SQL brut ... tout se mélangeait dans ces configurations ------> les pommes et les oranges.
Repères & Optimisation
Un problème commun avec presque tous les cas-tests - même ceux de la comparaison de frameworks php - trouvées sur le web et aussi ceux de "TechEmpower Framework Web Repères" est l'inégalité d'optimisation.
Ces critères ne font pas usage de possible (et par des développeurs bien connus), des optimisations sur les cadres ... au moins pour symfony2 et leurs tests, c'est un fait.
Quelques exemples concernant l'installation de symfony2 utilisés dans leurs derniers tests:
la liste continue ... mais je suppose que vous avez compris où cela mène. 90 questions ouvertes maintenant ... une histoire sans fin.
Développement & Ressources
Ressources comme les serveurs et le stockage sont à bas prix. Vraiment pas cher ... par rapport à votre temps de développement.
Je suis pigiste de charge considérablement le taux communs. vous pouvez obtenir soit les 2 à 3 jours de mon temps ... ou un sh**la charge de la puissance de calcul et de stockage!
Lors du choix d'un cadre, vous avez également le choix d'une boîte à outils pour le développement rapide - une arme pour votre lutte contre le jamais complètement satisfait, fonction rampante client ... qui va vous payer pour ses voeux.
Comme une agence ou un freelance) vous voulez construire des applications riches en fonctionnalités en peu de temps. Vous ferez face à des points où vous êtes coincé avec quelque chose ... peut-être liées à la performance de problème. Mais vous êtes confrontés à des coûts de développement et de temps ainsi.
Ce sera plus cher? D'un autre serveur ou à un développeur?
ms
d'un indice de référence est la meilleure option.you choose a community by choosing a framework
Ce blog répond à la deuxième partie de votre question:
http://symfony.com/blog/is-symfony-too-slow-for-real-world-usage
Lors du choix d'un cadre, il faut tenir compte du coût total de développement. Que signifie en regardant le code de qualité de l'encadrement (tests unitaires, documentation, etc.), les performances (et les coûts d'hébergement), la quantité et la qualité des fonctions qu'il a sorti de la boîte, la taille de la communauté, de l'utilisation par des organisations comme la vôtre, l'évolutivité, etc.
En tant que développeur Symfony, je déteste passionnément WordPress à partir d'un point de vue technique. Mais je vais tout de même vous recommander (et même l'utiliser!) pour un site web simple. Pas seulement parce que c'est de la popularité, mais parce que la taille de sa communauté: il est très facile de louer un WordPress concepteur/développeur. En regardant une comparaison des performances entre WordPress et Symfony n'aurait pas de sens dans ce cas.