NodeJS
Les performances
Récapitulatif
La première force de NodeJS est son incroyable rapidité d'exécution des traitements. Ce qui aide à rendre rapide ces traitements, c'est le fait que NodeJS est asynchrone et peut donc traiter plusieurs demandes en même temps, sans parler de la scalability si on on vient intégrer plusieurs machines pour effectuer ces traitements. De plus, NodeJS est codé en JavaScript, cela permet que le côté serveur et le côté client est codé de la même façon.
Un autre point fort est la disponibilité des différents modules. L'utilisation de ces modules permet un codage simple, efficace et rapide. Par exemple, pour coder un chat simple, il suffit d'une petite quinzaine de lignes. Grâce à la communauté montante de NodeJS, les différents modules sont de plus en plus testés, des exemples sont écrits, et des avis sont donnés. NodeJS étant un jeune projet, il n'a qu'un bel avenir devant lui.
Malgré sa progression dans le monde du web, NodeJS possède néanmoins il existe quand même quelques points faibles. Par exemple, les modules sont en général codés par des passionnés et il existe plusieurs modules disponibles pour faire la même chose. Cependant, il n'existe rien répertoriant les meilleurs modules ou permettant de les tester. C'est le principal point faible de la communauté. On peut imaginer que cela évoluera une fois que la communauté NodeJS prendra une nouvelle dimension.
Quelques chiffres
Des tests de performances ont été effectués sur NodeJS pour les comparer au serveur web Apache. Il a été calculé quel était le nombre de requêtes par seconde des deux serveurs web en effectuant un total de 10 000 requêtes. Ces requêtes demandent simplement le chargement d'une page web statique.
Plateforme | Requêtes/seconde |
---|---|
Apache (PHP) | 3187 |
NodeJS | 5570 |
Les résultats montrent que NodeJS est 75% plus rapides sur ces types de traitements. Et en général, NodeJS est plus performant qu'un serveur Apache car toutes les fonctionnalités superflues utilisées dans Apache ne le sont pas dans NodeJS. On ne déclare que les modules dont on a besoin.