2011-09-11 2 views
0

j'ai un site qui obtient environ 1000 pages vues par minute lorsque le trafic est élevé et la page a un code js qui stocke les détails du navigateur du visiteur dans MySQL en utilisant un fichier php pour connecter à db. Par exemple browser.js appels storebrowserdata.php Y at-il un moyen pour moi de mettre en cache le fichier php et le fichier js sans affectant mes données de statistiques qui sont stockées dans le db ?? Lorsque le trafic est élevé pendant la journée, le site ralentit et l'utilisation du processeur augmente également.cache php et javascript fichier

+0

pourquoi ne pas utiliser la fonction get_browser? – undone

+0

Comment voulez-vous mettre en cache quelque chose qui, par définition, doit être exécuté pour chaque visiteur? ... Comme le dit @Death, il serait préférable de stocker les informations du navigateur côté serveur (si vous ne stockez que les informations du navigateur et non la taille de l'écran, qui ne peut pas être détectée en utilisant un langage côté serveur) –

+0

la taille du navigateur et exécuter ma propre requête sur les données qui sont obtenues, donc je ne peux pas utiliser google analytics. Aussi, j'utilise le js sur plusieurs sites – peter

Répondre

0

vous pouvez mettre en cache le fichier js ainsi que php un.
mais cela ne fera rien de bon pour vous.

C'est la mise à jour de la base de données qui ralentit le plus probablement votre site.

quelle opération consomme le plus de CPU? Avez-vous profilé votre application? Est-ce la seule page qui utilise PHP mysql sur votre site?

1

PHP est interprété. Si vous souhaitez récupérer les informations de chaque navigateur/agent utilisateur sur chaque chargement de page, vous devez exécuter ce script à chaque fois; vous ne pouvez pas le mettre en cache. Si cette fonctionnalité ralentit votre site, utilisez une solution alternative comme Google Analytics, ou étudiez une solution NoSQL comme Mongo DB qui propose des mises à jour atomiques et fonctionne en général plus vite que MySQL.

0

Si vous devez contrôler le flux de processus exécuté, vous pouvez utiliser une file d'attente et contrôler le taux d'exécution.

A propos de ce système, c'est un projet open source: http://www.rabbitmq.com/