SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

291 Plugins, 198 contribs sur SPIP-Zone, 79 visiteurs en ce moment

Accueil > Optimisation et performances > Memoization > Plugin mémoization

Plugin mémoization

9 avril 2018 – par Fil, JLuc – commentaires

10 votes

La mémoïzation est « une technique consistant à réduire le temps d’exécution d’une fonction en mémorisant ses résultats d’une fois sur l’autre » [1]. C’est aussi le nom d’un plugin SPIP qui a recours aux caches memcache(d), APC, xcache, eaccelerator ou redis, pour accélérer les accés aux caches SPIP. Il propose aussi une option de base, filecache, pour les hébergements sans cache mémoire.

La librairie utilisée pour ce plugin peut également être utilisée de manière autonome sur mesure dans le code d’un plugin, ou même par toute application indépendante de SPIP. Pour cela, voyez l’article « Memoization, la librairie ».

Mettre les caches en mémoire

Memoization est particulièrement utile lorsque votre hébergement propose un système de cache mémoire ’user’. À chacun des systèmes de cache mémoire les plus répandu correspond une option de memoization :
-  XCache
-  APC Cache
-  redis
-  memcache(d)

Lorsque votre site dispose de l’un de ces systèmes de caches, le paramétrage de memoization vous en propose le choix. Il suffit de choisir l’option, et votre SPIP bénéficie d’un cache mémoire au lieu d’un cache sous la forme de fichiers sur le disque. L’accès aux caches est donc grandement accéléré.

Lorsqu’activé sur un SPIP, le plugin memoization ne touche pas au fonctionnement habituel du cache de SPIP, sur la durée de mise en cache d’une page ou noisette. Cela ne fait que transférer le stockage du mécanisme de cache de SPIP dans la RAM. 

Il y a une autre différence par rapport au cache SPIP classique : avec memoization il n’y en a tout simplement pas de garbage collector car c’est chaque système de cache qui gère son propre nettoyage des données périmées. Cela permet d’éviter un bug récurrent sur les gros sites SPIP : l’« explosion » du cache.

XCache
-  doc technique pour la configuration : http://xcache.lighttpd.net/wiki/PhpIni
-  XCache n’est pas compatible PHP7 (et ne le sera peut être jamais)

APC
-  APC Cache
-  il n’y a aucun paramétrage supplémentaire à faire.
-  Lorsque vous activez l’option APC Cache, vous pouvez aussi bénéficier d’un navigateur-analyseur de cache en installant le plugin XRay en complément.

redis
-  https://redis.io/clients
-  Pour ce système de cache, le paramétrage SPIP du plugin propose deux modes pour interroger la base : "Serveur" et "Socket Unix". Ce choix dépends de la configuration du serveur redis choisi par l’admin sys.
-  Pour la sérialisation : privilégier SERIALIZER_IGBINARY, qui est plus performant

memcache(d)
-  memcached est une évolution plus récente de memcache.
-  Liens :

Autres options de cache

filecache

L’option filecache est la seule option qui ne range pas les caches en mémoire. On l’utilisera lorsque l’hébergement ne propose pas de cache en mémoire.

Avec filecache, memoization range les caches sous la forme de fichiers, comme le SPIP de base, mais distribue ces fichiers dans un plus grand nombre de dossiers que par défaut avec SPIP. Il n’y a pas de réglage limite pour le filecache ; par défaut, mémoization prévoit une distribution homogène des caches parmi 16^4 fichiers. La plupart du temps ce sera satisfaisant, mais en cas de collision, il est possible de modifier cette valeur et régler ainsi la taille maxi (il faudra faire quelques essais).

Note : l’option filecache est intégrée dans SPIP à partir de la version 3.1.

nocache

Avec nocache, SPIP ne gère plus de cache. C’est à utiliser temporairement seulement, le temps d’un débug par exemple.

Notes

[1d’après Wikipedia

Dernière modification de cette page le 10 avril 2018

Retour en haut de la page

Vos commentaires

  • Le 27 juin à 08:33, par Michel En réponse à : Plugin mémoization

    Attention !
    Plantage du site laccreteil.fr lors de la mise à jour en v2.0.2, avec message impossible à vous copier ici car il n’est pas permis d’insérer des images ni d’utiliser les attributs html class ou style
    Bonne journée.
    Michel

    • Le 27 juin à 10:18, par JLuc En réponse à : Plugin mémoization

      Quel est le message d’erreur ?
      Vous pouvez le recopier en vous servant des touches de votre clavier.
      Ou si vous voulez absolument donner une image, indiquez un lien vers www.framapic.org

    • Le 27 juin à 10:21, par JLuc En réponse à : Plugin mémoization

      Ah il est indiqué sur spip-user :

      Fatal error: Uncaught Error: Call to a member function object() on null in /home/laccrete/www/plugins/auto/memoization/v2.0.2/memo/redis.inc:46 Stack trace:
      #0 /home/laccrete/www/plugins/auto/memoization/v2.0.2/memoization_options.php(70): MCacheBackend_redis->get('b215325430f245d...')
      #1 /home/laccrete/www/plugins/auto/memoization/v2.0.2/public/cacher.php(304): MCache->get('b215325430f245d...') #2 /home/laccrete/www/ecrire/public/assembler.php(46): public_cacher(Array, NULL, 'b215325430f245d...', Array, 0)
      #3 /home/laccrete/www/ecrire/public.php(117): assembler('', NULL)
      #4 /home/laccrete/www/spip.php(26): include('/home/laccrete/...')
      #5 /home/laccrete/www/index.php(3): include('/home/laccrete/...')
      #6 {main} thrown in /home/laccrete/www/plugins/auto/memoization/v2.0.2/memo/redis.inc on line 46
    • Le 27 juin à 11:20, par JLuc En réponse à : Plugin mémoization

      Voilà c’est corrigé dans la version 2.0.3

    • Le 27 juin à 12:05, par Michel En réponse à : Plugin mémoization

      Merci !
      Attention, il faut attendre 2.0.3 car en auto, la version est encore 2.0.2 à cette heure !
      Bonne journée

    Répondre à ce message

  • Le 9 avril à 23:33, par Manu En réponse à : Plugin mémoization

    Bonjour,
    Sur notre espace d’hébergement seuls autodetect/filecache ou nocache sont disponibles. Cela veut dire que l’hébergement ne propose pas de cache en mémoire et si je me fie à la doc, les performances sont un peu pénalisées.
    Que faut-il faire (modules à installer ? autre chose) pour rendre dsiponible memcache, APC et les autres ? Quelque chose à demander à l’hébergeur ?

    • Le 10 avril à 12:07, par JLuc En réponse à : Plugin mémoization

      Ce site est un site d’entraide autour de SPIP et cette doc porte sur le plugin memoization. L’installation des systèmes de caches mémoire cités ici n’entre pas dans ce cadre et pour ma part je suis incapable de vous répondre.
      Vous trouverez les indications utiles derrière les liens déjà fourni dans cette page. Ou sinon demandez à votre hébergeur ou à votre admin sys.

    Répondre à ce message

Répondre à cet article

Qui êtes-vous ?
  • [Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Formidable, le générateur de formulaires

    23 janvier 2012 – 2531 commentaires

    Un générateur de formulaires facilement configurable pour les non-informaticiens et facilement extensible pour les développeurs. Introduction L’objectif était de créer un plugin permettant de générer des formulaires. Historiquement, 2 plugins (...)

  • Calendrier Mini 2.0

    19 mai 2012 – 256 commentaires

    Ce plugin ajoute la balise #CALENDRIER_MINI qui insère un petit widget de navigation par mois dans les dates des évènements. Fonctionnement du mini calendrier Le mini calendrier présente un mois à la fois. Les jours du mois comportant des (...)

  • Owl Carousel 2

    30 novembre 2017 – 41 commentaires

    Owl Carousel est un diaporama jQuery adaptable aux différentes tailles d’écran, qu’on peut actionner par glisser, il utilise CSS3 mais il est compatible avec les vieux navigateurs, et il est aussi paramétrable. Le présent plugin permet d’utiliser (...)

  • Paiement avec Formidable

    16 février 2015 – 69 commentaires

    Ce plugin « Paiement avec Formidable » permet d’ajouter une étape de paiement à la fin de la saisie d’un formulaire créé par le plugin Formidable. Il le complète et nécessite par ailleurs le plugin bank qui gère l’interface technique avec les prestataires (...)

  • Bouquinerie V2 : guide de l’utilisateur

    3 janvier – 18 commentaires

    Configuration Quels contenus Selon la maquette adoptée pour votre site, vous pouvez décider que certains éléments des livres ou auteurs de livre ne sont pas utilisés. Vous trouverez dans la page de configuration du plugin la possibilité de (...)