2013-05-17 3 views
5

Nous essayons de comprendre quel effet l'activation d'AppCache dans le contrôleur frontend a sur la mise en cache sans appeler aucune directive de cache sur l'objet de réponse.Amélioration des performances de Symfony2 AppCache

Je présumaient simplement en ajoutant la ligne suivante et la mise en default_ttl à 1:

$kernel = new AppCache($kernel); 

ne changerait pas le comportement de l'application sans faire appel à une directive de cache sur la réponse. Mais dès que nous ajoutons cette ligne (et cache: clear) notre serveur est capable de gérer beaucoup plus de requêtes par seconde, ce qui suggère qu'il y a de la mise en cache.

Allumer le débogage et la mise default_ttl à une heure tout ce que nous voyons dans les en-têtes http est

X-Symfony-Cache: GET /: miss 

Est-ce que cela signifie qu'il n'y a pas de mise en cache de proxy inverse qui se passe? Si oui, qu'est-ce qui explique l'augmentation de la performance?

Toute précision sur ce qui se passe dans cette situation serait génial.

Répondre

3

Cette ligne

$kernel = new AppCache($kernel); 

permet à l'Symfony2 Reverse Proxy. Pour plus d'explications, suivez ce lien: http://symfony.com/doc/current/book/http_cache.html#symfony2-reverse-proxy. L'augmentation de performance devrait être claire maintenant. L'en-tête signifie que le "Symfony-Cache" a reçu une requête "GET" et n'a trouvé aucune donnée mise en cache ("miss"). Si vous appelez la même page plusieurs fois de suite, l'en-tête doit être remplacé par:

X-Symfony-Cache: GET /: HIT 42 
+0

Merci. Je comprends qu'il active le proxy inverse, mais il ne commencera pas à mettre en cache quoi que ce soit sans spécifier que nous voulons l'utiliser dans l'objet de réponse. IE nous obtenons seulement un manque mais la performance s'améliore indépendamment – user1207727

Questions connexes