Changeset 111462 in spip-zone


Ignore:
Timestamp:
Aug 30, 2018, 8:15:17 AM (8 months ago)
Author:
cedric@…
Message:

apc et apcu proposent un stockage en memoire partage entre les utilisateurs, il faut donc utiliser _CACHE_NAMESPACE pour compter la taille du seul cache du site concerne, ET faire la meme chose pour vider le cache en appelant apc(u)_delete pour chaque cle du cache, car sinon apc(u)_clear_cache vide aussi le cache de tous les voisins sur le serveur

Location:
_plugins_/memoization/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/memoization/trunk/memo/apc.inc

    r110083 r111462  
    6363                if (!class_exists('APCIterator'))
    6464                        return false;
    65                 $a = new APCIterator('user');
     65                $a = new APCIterator('user', '/^'.preg_quote(_CACHE_NAMESPACE).'/', APC_ITER_ALL, 256*256);
    6666                return $a->getTotalSize ();
    6767        }
    6868
    6969        function purge() {
    70                 return apc_clear_cache('user');
     70                if (!class_exists('APCIterator'))
     71                        return false;
     72                $a = new APCIterator('user', '/^'.preg_quote(_CACHE_NAMESPACE).'/', APC_ITER_ALL, 256*256);
     73                foreach ($a as $cache) {
     74                        apc_delete($cache['key']);
     75                }
     76                return true;
    7177        }
    7278
  • _plugins_/memoization/trunk/memo/apcu.inc

    r111308 r111462  
    6363                if (!class_exists('APCUIterator'))
    6464                        return false;
    65                 $a = new APCUIterator();
     65                $a = new APCUIterator('/^'.preg_quote(_CACHE_NAMESPACE).'/', APC_ITER_ALL, 256*256);
    6666                return $a->getTotalSize ();
    6767        }
    6868
    6969        function purge() {
    70                 return apcu_clear_cache();
     70                if (!class_exists('APCUIterator'))
     71                        return false;
     72                $a = new APCUIterator('/^'.preg_quote(_CACHE_NAMESPACE).'/', APC_ITER_ALL, 256*256);
     73                foreach ($a as $cache) {
     74                        apcu_delete($cache['key']);
     75                }
     76                return true;
    7177        }
    7278
  • _plugins_/memoization/trunk/paquet.xml

    r111308 r111462  
    22        prefix="Memoization"
    33        categorie="performance"
    4         version="2.0.4"
     4        version="2.0.5"
    55        etat="stable"
    66        compatibilite="[3.0.0;3.2.*]"
Note: See TracChangeset for help on using the changeset viewer.