web-dev-qa-db-fra.com

PHP et performance

J'entends toujours que PHP= est destiné aux sites Web moyens et petits, alors que .NET et Java pour les applications d'entreprise. Ma question concerne PHP. Pourquoi PHP Pas une bonne option pour les applications Web d'entreprise? Est-ce parce que si l'application Web devient plus grosse, alors PHP sera-t-il plus lent, car il s'agit d'une langue interprétée?

Je sais que le monde d'entreprise choisira .NET ou J2ee en raison de l'intégration avec leurs produits et en raison de services de fin de fin, etc. Cependant, si nous n'avons que PHP pour les chantiers et les applications Web. Comment pouvons-nous l'utiliser pour bien performer avec de grands sites?

En bref, y a-t-il une relation entre les performances de PHP et la taille du site Web? Quels sont les facteurs qui font PHP pas d'option non appropriée pour les grands sites ?

17
Naif

La performance n'est probablement pas l'un des facteurs. Pour une langue dynamique, PHP réellement fonctionne assez bien; Selon la tâche, cela pourrait ou pourrait ne pas battre d'autres technologies. Le modèle d'application est tout simplement trop différent pour la comparer directement contre Java ou asp.net. Même s'il y a une différence de vitesse mesurable, ce n'est pas grand, et il est probablement linéaire, ce qui signifie qu'il peut être résolu en jetant plus de matériel. De plus, le langage de programmation lui-même est rarement des algorithmes de goulot d'étranglement, d'accès à la base de données, de bande passante de réseau et d'E/S en général sont les coupables habituels, à moins que vous n'écriviez à quelque chose de véritablement intensif de la CPU.

Raisons d'utiliser ASP.NET ou Java sur PHP plus probablement inclus:

  • Intégration de la plate-forme. ASP.NET propose une intégration étendue avec .NET et le système d'exploitation Windows sous-jacent.
  • Des solutions générales. PHP a été conçu spécifiquement pour le Web, tandis que .NET et Java sont des plates-formes à usage général. Utilisation de Java ou .NET, vous pouvez clouer sur le même code partagé avec peu d'effort, tandis que PHP ne convient pas aux applications de bureau.
  • Caractéristiques de l'organisation du code. Java _ et .net ont été conçus pour OOP à partir du début, tandis que OOP in PHP est un peu après coup. PHP _ Les espaces de noms introduits très récemment, et ils sont limités et maladroits par rapport à ce que .NET et Java ont à offrir. La programmation de style d'entreprise repose généralement fortement sur OOP, ce qui fait PHP le candidat moindre.

Une autre raison pour laquelle l'effet perçu est que PHP est libre (comme dans la bière) et omniprésente - toutes les sociétés d'hébergement Web partagé à bas prix ont PHP dans leur package standard, mais un .NET ou Java Server va vous coûter de manière significative plus. Par conséquent, une énorme masse de petits sites Web utilise PHP, pas parce que c'est le meilleur outil pour le travail, mais le seul à accomplir.

Cela ne veut pas dire PHP ne convient pas aux grands projets - cela ne va tout simplement pas avec le type de programmation "Enterprisey". Ses forces mentent ailleurs, et si vous pouvez les utiliser, vous pouvez simplement créer des applications à grande échelle que possible avec toute autre technologie Web.

19
tdammers

Vous êtes un trafic déroutant ("petit site Web" signifie généralement un site Web avec un trafic de petite à moyenne), avec le degré de complication logique des entreprises (Site Web simple VS Enterprise Solution). Dans le second cas, la performance n'est pas le facteur clé.

Par exemple, Facebook est un site Web élevé de trafic, mais ce n'est pas une application d'entreprise. D'autre part, il existe des pléthores d'intranets basés sur des serveurs d'applications Java, qui ne seraient pas en mesure de gérer le trafic de site Web MI -SIZE.

Performance-Wise PHP n'est pas la meilleure option, mais ce n'est pas si mauvais non plus. Surtout comparer avec d'autres langues dynamiques. Cependant, encore une fois, la performance brute n'est pas le facteur le plus important. La création de sites Web à fort trafic est davantage sur l'optimisation de l'évolutivité sur le niveau architectural.


Pourquoi PHP est-il si méprisé par l'entreprise? Il y a peu de causes, il s'agirait d'abord, c'est réputation de la sécurité terrible . Deuxièmement, c'est que cela percevait comme une langue pour les amateurs créant un code de spaghetti HTML-PHP laid et ingérable. Cette perception persiste, même s'il existe des cadres MVC matures. Je suppose qu'avoir l'auteur original de PHP affirmant que vous n'avez pas besoin d'un cadre N'aidez pas. Fait que ces amateurs désemparés avec peu de compétences de programmation appellent eux-mêmes des "programmeurs PHP" ne vous aide pas non plus. Troisième raison est que tout programmeur expérimenté sera d'accord, que PHP est simplement conçu comme une langue. Vous pouvez clairement voir qu'il a été conçu par un webmaster, tandis que la plupart des langues dynamiques modernes ont été conçues par des universitaires post-diplômés spécialisés dans les compilateurs et la conception de la langue.

Et oui, dans l'entreprise, il s'agit de l'intégration du système, où PHP ne brille pas non plus. Avec suffisamment d'effort, vous pouvez créer des modules C. Il y a PHP-Java Bridge, qui est assez fastidieux à utiliser. Au-delà de cela, vous n'avez pas beaucoup. Les tentatives de création de boost :: php (intégration avec C++) ont échoué. Les php-clones fonctionnant sur JVM sont loin d'être n'importe quoi près de 100% de compatibilité avec PHP (comme note latérale, il n'y a pas de définition de langue PHP formelle, la seule référence est la mise en œuvre par défaut).

13
vartec

Aucune idée pourquoi les gens revendiquent PHP est destiné aux sites Web de petits et moyens. Au mieux de ma connaissance, ce n'est pas vrai. Je connais des sites Web dePHP _ Sites annulés qui ont commencé petit, puis ont augmenté de 100 sites Web de mon pays. Ils utilisent toujours PHP et n'ont aucun intention de changer quoi que ce soit.

La chose qui pourrait conduire des gens à une telle conclusion est que, en cas de Java (et que je suppose aussi avec .NET) L'affichage de l'application est un terme fréquemment élevé dans la documentation et la littérature. La plupart des serveurs d'applications prennent en charge une forme de regroupement qui permet un ajout rapide de "puissance" avec la croissance de la popularité. En cas de PHP, vous devez construire vous-même un groupe vous-même. Vous pouvez le faire de nombreuses manières, en utilisant différents composants et vous devez connaître un peu ou deux sur PHP fonctionnement interne. Cela fait probablement que les gens pensent que avec PHP _ un serveur unique (et ainsi de petit site Web) est une impasse pour PHP.

6
Jacek Prucia

Il n'y a pas une telle chose que seule application Web d'entreprise. Dans le monde de l'entreprise, vous avez généralement un système complet de l'entreprise, où la partie Web est assez petite par rapport à l'ensemble du système. Il existe de nombreux systèmes sous la bande qui effectue le traitement par lots, la messagerie de la file d'attente, l'intégration d'entreprise, les passerelles et bien d'autres. Événement en haut il pourrait ne pas être seulement

Tandis que PHP== est bon pour le Web n'est pas si bon pour les autres types de systèmes distribués. Et puisque vous faites tous ces systèmes dans Java ou .net c'est facile Pour également construire la pile Web sur la même plate-forme plutôt que dans PHP.

3
m3th0dman

Je dirais que les problèmes de PHP tient moins de la performance que des antécédents de vulnérabilités de sécurité. Bien que ce soit sans aucun doute possible Pour écrire un site Web de toute taille ou complexité particulière dans PHP et maintenir toujours la sécurité, à mesure que la complexité augmente, le maintien de la sécurité a tendance à devenir plus difficile.

Java, d'autre part, a été conçu avec au moins quelques idées sur la sécurité du premier jour. Bien que ceux-ci ne conviennent pas entièrement au déploiement le plus actuel (la pensée initiale était principalement autour des applets, pas des servelets) que l'accent signifie que ses caractéristiques ont tendance à mieux s'adapter à la production de code sécurisé. Et, bien sûr, cela ne s'est pas resté encore non plus - car les applets sont principalement un problème mort maintenant, Java a été ré-défini pour souligner le rôle côté serveur qu'il occupe maintenant (principalement) occuper.

Puisque .NET au moins essaie de concurrencer presque directement avec Java, il fournit beaucoup le même type de fonctionnalités et de capacités à cet égard. Vous pouvez discuter (et des adhérents aux deux camps le font) sur le point de savoir si Sun ou Microsoft fait un meilleur travail à cet égard, mais le simple fait que les deux ont des équipes de personnes vraiment essayez de travailler sur elle leur donne une avantage assez grave sur PHP à cet égard.

1
Jerry Coffin