Est-il fou de ne pas compter sur un système de mise en cache comme memcached de nos jours (pour les sites dynamiques)?

voix
2

Je viens en revue un de mes applications de client qui utilise un vieux framework PHP obsolète qui ne repose pas sur la mise en cache du tout et est à peu près complètement dépendante base de données.

Je me dis que je vais le réécrire à partir de zéro , car il est vraiment obsolète et dans cette réécriture je veux mettre en place un système de mise en cache. Ce serait bien si je pouvais obtenir quelques conseils si quelqu'un a fait cela avant.

  • Réécriture se fera soit dans PHP ou Python
  • Ce serait bien si je pouvais le profil avant et après cette mise en œuvre
  • J'ai mon propre serveur, donc je ne suis pas restreint par l'hébergement mutualisé
Créé 27/08/2009 à 04:57
source utilisateur
Dans d'autres langues...                            


4 réponses

voix
3

Depuis Python est l' un de vos choix, je vais avec Django. Mécanisme de mise en cache intégrée, et je me sers de cette debug_toolbar pour me aider tout en développant / profilage.

Soit dit en passant, memcached ne pas fonctionner comme vous l' avez décrit. Il cartes clés uniques à des valeurs en mémoire, il n'a rien à voir avec les fichiers .csh ou des requêtes de base de données. Qu'est - ce que vous stockez dans une valeur est ce qui va être mis en cache.

Oh, et la mise en cache ne vaut s'il y a (ou seront) les problèmes de performance. Il n'y a rien de mal à « ne pas se fier » avec caches si vous ne avez pas besoin. L'optimisation prématurée est de 99% mal!

Créé 27/08/2009 à 05:06
source utilisateur

voix
6

Si les performances de votre site est bien alors il n'y a aucune raison d'ajouter la mise en cache. Beaucoup de sites peuvent se débrouiller sans cache du tout, ou en se déplaçant vers un cache basé sur des fichiers système. Il est seulement les sites de trafic super haut qui ont besoin memcached.

Ce qui est « fou » est l'architecture de code (ou un manque d'architecture) qui permet d'ajouter la mise en cache dans ce dernier difficile.

Créé 27/08/2009 à 05:08
source utilisateur

voix
9

Caching, quand il fonctionne bien (== taux élevé de succès), est l' une des rares techniques à usage général qui peut vraiment aider à temps de latence - la partie la plus difficile des problèmes décrit génériquement comme « performance ». Vous pouvez améliorer QPS (requêtes par seconde) mesures de performance tout en lançant plus de matériel au problème - mais la latence ne fonctionne pas de cette façon (elle ne prend pas seulement un mois pour faire un bébé si vous définissez neuf mères pour travailler dessus ;-).

Cependant, la principale ressource utilisée par la mise en cache est généralement la mémoire (RAM ou le disque comme il peut être). Comme vous le mentionnez dans un commentaire que le seul problème de performance que vous observez est l' utilisation de la mémoire, la mise en cache ne serait pas utile: il serait tout simplement affecter une partie de la mémoire à utiliser à des fins de mise en cache, ce qui laisse encore moins disponible en tant que « fonds général ». En tant que résident de la Californie , je suis témoin de première main ce qui se passe quand trop de ressources sont affectées, et je ne pouvais pas recommander une telle action avec une conscience claire -)

Créé 27/08/2009 à 05:18
source utilisateur

voix
0

En fonction de la spécificité des modèles de codebase et de la circulation, vous pourriez même pas besoin de réécrire l'ensemble du site. Horriblement le code inefficace n'est pas un gros problème si elle peut être contournée via le cache pour 99,9% des demandes de page.

Au moment de choisir PHP ou Python, assurez-vous de savoir où vous allez héberger le site (ou si vous obtenez même de faire cet appel). Beaucoup de mes clients sont déjà mis en place sur un serveur web et Python n'est pas une option. Vous devez également vous assurer que toutes les bases de données / programmes externes que vous souhaitez interfacer avec sont bien pris en charge en PHP ou Python.

Créé 27/08/2009 à 05:34
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more