SPIP-Contrib

SPIP-Contrib

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

290 Plugins, 198 contribs sur SPIP-Zone, 92 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 ?

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

  • GIS 4

    11 août 2012 – 1524 commentaires

    Présentation et nouveautés La version 4 de GIS abandonne la libraire Mapstraction au profit de Leaflet. Cette librairie permet de s’affranchir des librairies propriétaires tout en gardant les mêmes fonctionnalités, elle propose même de nouvelles (...)

  • ScolaSPIP 4

    19 janvier 2016 – 383 commentaires

    ScolaSPIP est plugin-squelette responsive personnalisable pour sites Web d’établissements scolaires basé sur SPIPr Présentation de ScolaSPIP Ce plugin pour SPIP 3 est développé par la Dane de l’académie de Versailles pour les webmestres de cette (...)

  • Jeux pour SPIP 3

    27 juillet 2012 – 53 commentaires

    Un portage pour SPIP 3 du plugin Jeux a été fait. Explications et nouveautés. Cet article concerne une mise à jour du plugin Jeux dont la description complète est disponible ici : Des jeux dans vos articles !. Le code du plugin Jeux est un code (...)

  • Plugin Vidéo(s)

    23 novembre 2010 – 704 commentaires

    Interface de gestion et modèle d’insertion des vidéos : Dailymotion Vimeo Youtube Modèle de la balise HTML5 video avec alternative flash html5media : Lecture HTML5/Flash pour tout navigateur des fichiers MP4/H264/Ogg/WebM/Mkv Support mobile, iPad, (...)

  • Vidéo Accessible

    6 avril 2011 – 168 commentaires

    Un plugin pour faciliter la diffusion de vidéos accessibles. Accessibilité des vidéos Accessibilité de la vidéo Afin d’être pleinement accessible, une vidéo (composée d’images et de sons) doit répondre à plusieurs critères. Le critère de base est (...)