SPIP-Contrib

SPIP-Contrib

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

289 Plugins, 197 contribs sur SPIP-Zone, 96 visiteurs en ce moment

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

Plugin mémoization

9 avril 2018 – par Fil, JLuc – commentaires

9 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 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

  • Visualiser un PDF dans un article

    13 juin – commentaires

    SoyezCréateurs utilise un modèle pour afficher un PDF dans le corps d’un article Un peu d’histoire Avant, les navigateurs n’incluaient pas de lecteur PDF nativement ce qui avait conduit à la création du plugin Lecteur pdf javascript pdf.js. Mais, (...)

  • Aveline v2

    9 novembre 2012 – 97 commentaires

    Aveline est une collection de noisettes hautement paramétrables, compatibles avec les thèmes Z et à inclure dans vos pages avec le noiZetier. Compatibilité Cette version 2 du plugin Aveline s’utilise, sous SPIP 3, avec la version 2 du noizetier, (...)

  • ORR v2

    21 mai 2013 – 105 commentaires

    ORR, le plugin d’Organisation des Réservations et des Ressources passe en version 2, avec quelques nouveautés attendues. Je ne reprendrai pas les explications données dans la version 1. Les nouveautés : 1. Gestion des autorisations Le principe (...)

  • Speedsyndic pour SPIP 2 et SPIP 3

    11 octobre 2010 – 32 commentaires

    Ce plugin est une version compatible spip 2.0.x / 2.1 / 3.1 du plugin Speedsyndic Note : Une bonne partie du texte ci-dessous a été pompé de cet article, expliquant la version précédente du plugin. je n’ai fait qu’adapter le code pour spip 2, ajouter (...)