Code qt : | Sélectionner tout |
1 2 3 4 | static Validator v({ new ValidatorRequired(QStringLiteral("username") }); if (v.validate(c,Validator::FillStashOnError)) { // } |
La deuxième amélioration concerne plutôt la performance. Jusqu’à la version précédente, Cutelyst ne communiquait avec le serveur Web (Apache, NGINX, etc.) que par uWSGI. Cependant, le protocole uWSGI a un défaut de conception relativement gênant : la communication n’est pas gardée entre le serveur Web et l’application ; ainsi, lorsque le client effectue une nouvelle requête, la connexion HTTP est conservée jusqu’au serveur Web, mais pas jusqu’à l’application. FastCGI, au contraire, n’a pas cette limitation et est accepté par bon nombre de serveurs Web.
L’impact est important : là où uWSGI ne pouvait gérer que 30 000 requêtes par seconde avec NGINX, la simple transition vers FastCGI permet de gérer jusque 42 000 requêtes par seconde. Après d’autres optimisations de plus petite ampleur (comme la manière de gérer les en-têtes HTTP dans Cutelyst), le total monte même à 80 000 requêtes par seconde.
Source : Cutelyst 1.3.0 released.
Voir le code source.