2009-11-15 14 views

Répondre

7

Je viens de trébucher sur la langue shootout hier, là encore où vous pouvez comparer certaines caractéristiques de performance des deux langues tout en exécutant des programmes différents. Cependant, je n'ai pas trouvé de point de référence pour les performances Web. En fait, les langages interprétés comme PHP sont toujours plus lents qu'un langage compilé. Les fichiers JSP sont également compilés, donc une fois que le serveur est en cours d'exécution et ne change plus, les performances seront meilleures qu'un script PHP qui sera interprété chaque fois qu'une requête arrivera.

D'autre part , le premier goulot d'étranglement de performance que vous aurez sera probablement la vitesse de la base de données, de toute façon. Et puis il y a encore beaucoup d'autres façons d'améliorer les performances comme pré compiler vos scripts PHP, externaliser des calculs lourds en C etc. Et par rapport au monstre du développement web Java PHP est facile à apprendre et à suivre. En fin de compte, si vous avez le choix, vous devriez choisir la langue qui vous convient le mieux. Si vous démarrez un nouveau projet, vous ne savez peut-être même pas si toutes les considérations relatives aux performances seront importantes, car vous n'avez pas encore les utilisateurs et vous voulez simplement que votre application soit disponible rapidement.

1

Alors que l'explication de Daff de PHP vs JSP est techniquement fausse, l'essentiel de son message est correct: choisissez la langue qui vous convient le mieux. Très rarement, vous vous trouverez dans une position où la performance est vraiment grave. À ce stade, vous êtes beaucoup plus susceptible de pouvoir effectuer des optimisations architecturales significatives dans la langue de votre choix - et ces optimisations auront probablement plus d'effet que la différence entre PHP et JSP. L'une des règles de base de la programmation a toujours été d'éviter une optimisation prématurée - pour la seule raison que, tant que vous n'êtes pas réellement sous pression, vous ne savez pas ce que vous avez vraiment besoin d'optimiser, ni des moyens de déterminer si cela a fonctionné.

Si vous croyez que vous pourriez être confronté à des problèmes de performance, aucun site Web ne peut vous aider. La chose la plus importante est de créer vos propres benchmarks de tests de charge qui représentent les spécificités du fonctionnement de votre site, en simulant la façon dont vos utilisateurs font les choses. Une fois que vous l'avez fait, vous pouvez passer à la modification de votre code, en implémentant des éléments tels que la mise en cache, l'équilibrage de charge, le partitionnement des données et des demandes, en sachant que vos modifications ont un impact positif sur les performances de votre site.

Il y a des livres spécifiquement sur le processus d'optimisation en général, mais la séquence clé est la suivante:

  1. Benchmark
  2. Changer Test
  3. Indice de référence pour voir si le changement indique une amélioration de la performance
  4. Go en direct
  5. Évaluer la réponse en direct pour voir si la prédiction de l'indice était correcte

(Les gens oublient # 5 beaucoup et se font la douleur)

Si vous allez passer du temps se soucier de la performance, passer du temps à configurer cette séquence, ne pas passer du temps se soucier de votre choix de la langue .

+3

Je n'ai pas de problème pour définir correctement l'explication. Mais vous dites juste que c'est faux sans dire pourquoi ça n'aide pas beaucoup avec ça ... – Daff

+2

Je crois que votre généralisation de "éviter l'optimisation prématurée" pour "éviter l'optimisation jusqu'à ce que le client se plaint" est incorrecte. Vous devez toujours choisir le meilleur algorithme pour le but, puis l'utiliser de la manière la plus simple possible tout en restant correct. Des goulets d'étranglement se produisent occasionnellement dans des endroits inexplorés, mais il est rare que vous ayez à déchirer les tripes et à les remplacer par quelque chose de nouveau, mais simplement trouver le goulot d'étranglement et lui donner une attention particulière. –