En fin de compte, tout se résume à corriger cache de la 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ée de la base de données d'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 Et De La Performance ]
Avec le cloud 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:
- facebook fonctionne avec php
- youp**n a été développé avec symfony
- ...
Alors, pourquoi ces sites ne se décomposent complètement? Parce que leur mise en cache des routines sont intelligents.
Saviez-vous par exemple que facebook ne si vous écrivez une mise à jour de statut?
Il n'est 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éé d'état lorsque le cache warmimg a fini. nous parlons ms ici ...
Qu'est-ce que nous disent? 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 5seconds.
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 et facile. symfony fait 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 & Setups ]
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 Et D'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é de l'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:
- "compositeur installer" n'est pas d'être appelé avec l'option-o drapeau pour vider un optimisée classmap autochargeur (code)
- Symfony2 va pas utiliser le cache APC pour la Doctrine de métadonnées annotations sans apc_cli = 1 ( question )
- l'ensemble de la DI de conteneur est injecté dans le contrôleur, au lieu de seulement les quelques services nécessaires
- par la présente, l'injection par mutateur est utilisé -> crée un objet puis d'appeler setContainer() la méthode au lieu d'injecter le conteneur directement dans le constructeur (voir: BenchController s'étend Contrôleur s'étend ContainerAware)
- un alias ( $this->get('service_name') ) est utilisé pour récupérer des services du conteneur au lieu d'y accéder directement ($this->container->get('service_name') ). ( code )
- ...
la liste continue ... mais je suppose que vous avez compris où cela mène. 90 questions ouvertes par maintenant ... une histoire sans fin.
[ Développement Et Des Ressources ]
Ressources comme les serveurs et le stockage sont à bas prix. Vraiment pas cher ... par rapport à votre temps de développement.
Je suis un femme de 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?