• [^] # Re: Node.js

    Posté par . En réponse à la dépêche Opa, un nouveau langage pour le développement d’applications Web. Évalué à 5.

    Un collègue me dit que Opa fait 80 requêtes/seconde sur un Hello World contre 1200 pour nodejs, et que ça leake pas mal de mémoire. Mais ça serait pas mal d'avoir un benchmark un peu plus sérieux.

    Il est toujours difficile de comparer des solutions très différentes en terme de fonctionnalités. Le HelloWorld standard de Node.js met en oeuvre un serveur HTTP "brut" sans table de cookies ni logs. La page servie est une (courte) page HTML sans Javascript. En terme de fonctionnalités, ce test se compare donc plus légitimement à un serveur Apache -- ou encore au serveur HTTP bas niveau utilisé en interne par les serveurs Opa.

    A l'inverse, le langage OPA est optimisé pour écrire des applications Web fortement dynamiques. Les pages servies par Opa incluent par défaut un runtime Javascript riche, permettant notamment de sérialiser en "temps réel web" des valeurs arbitraires du langage entre client et serveur.

    Il y a quelques jours, nous obtenions les résultats suivants en utilisant "siege" sur différents "hello world" en mono-coeur avec un paramètre de concurrence 100.

     Server trans/sec sec/trans/client
    

    Apache2/html 4200 0.023
    OPA HTTP server with no cookies and no logs 4000 0.025
    Node.js (has no cookies and no logs) 3600 0.028
    OPA HTTP server with cookies and logs 2900 0.034
    Apache2/PHP (has logs) 1800 0.055
    OPA server 1500 0.067

    A noter que le temps effectif de chargement d'une page dépend du temps d'exécution du runtime Javascript par le navigateur (non testé ici).

    Il faut savoir aussi que les tests de type "siege" allouent un grand nombre de cookies en continue, ce qui se traduit par une fuite mémoire apparente. Différentes options sont disponibles pour limiter de façon conservative le nombre de cookies actifs à un instant donné. Un paramétrage plus sûr sera activé par défaut dans la prochaine release.