Niveau :      

Résumé : mod_setenvif ; mod_header

Savez-vous que la lecture et l'écriture de variables d'environnement sont particulièrement lentes ?

Je suis tombé récemment sur un problème de performances sur apache. Après analyse, il s'est avéré que le coupable est mod_setenvif. Nous utilisions ce dernier pour modifier des header avec cette méthode :

SetEnvIf Cookie (.*) value
SetEnvIf value (.*) value debut$1fin
RequestHeader Cookie value

Or à partir d'apache 2.2.4, il est possible d'utiliser une expression régulière directement avec RequestHeader :

RequestHeader edit Cookie (.*) debut$1fin

Le temps de réponse par requête a été divisé par 5. Bien sûr on peut accuser les expressions régulières, mais vous constaterez que ce sont les 2 mêmes.

De plus, un test a montre que setenv était environ dix fois plus lent qu'un simple malloc. Même si on ne peut pas vraiment comparer, l'explication me convient.