2016-06-16 1 views
-4

J'ai une application PHP qui fournit un service reposant, je veux l'accélérer par xcache, mais la situation n'est pas aussi imaginaire.xcache ne pas accélérer mon application php

Mon application php repose sur yii 1.1, et la fonction test I fait une lourde requête db et un calcul. Le temps écoulé sinon utilise xcache est 600ms (300ms db query) et les choses sont globalement les mêmes si on utilise xcache.

Je peux voir xcache fonctionne vraiment en accédant à la page d'administration de xcache.

Xcache peut gagner du temps en évitant de créer un code d'opération redoublé, en théorie, il peut accélérer mon application, mais ce n'est pas le cas ici, alors quelqu'un peut-il expliquer?

+0

Le cache de code op accélère l'étape de compilation, rien d'autre. Cela ne réduit pas le temps nécessaire pour exécuter les codes d'opération, ou faire des choses IO. – Steve

+0

la mise en cache des opcode élimine le temps de parsing/lexing (compilation) pour le code lui-même, mais ne va pas faire de différence dans les requêtes de base de données, ou d'exécuter le lourd calcul dans votre code php –

+0

il devrait donc contenir l'heure de la compilation. – Nick

Répondre

0

Je pense que la raison est que le temps de compilation seulement la petite partie de l'ensemble. Je vais le tester et mettre le résultat ici plus tard.

+0

J'ai fait un autre test tout à l'heure, dans ce scénario je viens de mettre quelques commandes simples comme echo et ainsi de suite, et sûrement, xcache accélérer l'application par trois fois. – Nick

0

Vous devriez essayer d'activer opcache dans php ini qui est maintenant inclus dans le noyau php. une meilleure alternative serait d'essayer et d'optermise la requête lourde

0

Profil de votre application. Vous ne pouvez pas vous attendre à une accélération significative si le goulot d'étranglement est E/S ou si certaines requêtes DB sont mal optimisées.

0

Opcache est maintenant la norme, et il est fortement recommandé de l'utiliser.

Il est également sans importance, vous n'avez pas besoin de faire quoi que ce soit (autre que de l'installer) car Opcache gère tout le paramétrage et l'obtention de caches de codes Op pour vous de manière transparente. Vous pouvez également tenter de diagnostiquer votre requête en consultant les index de base de données, en utilisant EXPLAIN (si vous utilisez MySQL) et en mettant en cache les résultats.