Changeset 108191 in spip-zone


Ignore:
Timestamp:
Dec 26, 2017, 9:27:05 AM (18 months ago)
Author:
jluc@…
Message:

Présenter les caches valides APC mais invalidés par SPIP et leurs stats + fix date plus vieux cache + explication de la répartition des caches

Location:
_plugins_/xray/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/xray/trunk/paquet.xml

    r108079 r108191  
    99>
    1010        <nom>XRay</nom>
    11         <!-- Explorer les caches APC des squelettes SPIP pour les optimiser -->
     11        <!-- Explorer les caches APC des squelettes SPIP pour les comprendre et les optimiser -->
    1212
    1313        <auteur lien="https://contrib.spip.net/JLuc">JLuc</auteur>
  • _plugins_/xray/trunk/plugin.xml

    r108079 r108191  
    1212        <etat>test</etat>
    1313        <description>
    14         Explorer les caches APC des squelettes SPIP avec memoization pour les optimiser
     14        Explorer les caches des squelettes SPIP avec memoization APC pour les comprendre et les optimiser
    1515        </description>
    1616        <lien>http://contrib.spip.net/4946</lien>
  • _plugins_/xray/trunk/xray_apc.php

    r108165 r108191  
    1414| license@php.net so we can mail you a copy immediately.               |
    1515+----------------------------------------------------------------------+
    16 | Authors: Ralf Becker <beckerr@php.net>                               |
     16| Authors du apcu.php d'origine :                                      |
     17|          Ralf Becker <beckerr@php.net>                               |
    1718|          Rasmus Lerdorf <rasmus@php.net>                             |
    1819|          Ilia Alshanetsky <ilia@prohost.org>                         |
     20| Auteur des adaptations et du plugin SPIP :                           |
    1921|          JLuc http://contrib.spip.net/JLuc                           |
    2022+----------------------------------------------------------------------+
     
    985987                // tri à l'envers pour ne pas réindexer le tableaux numériquement avec array_shift
    986988                krsort($list, SORT_STRING);
    987                                 echo "<div class='info div1'><h2>Mémoization SPIP - Le ".date(JOLI_DATE_FORMAT,time())."</h2>
    988                                 <table cellspacing=0><tbody>
    989                                 <tr class=tr-0><td class=td-0>_CACHE_NAMESPACE</td><td>"._CACHE_NAMESPACE."</td></tr>";
    990                 $nb_fantomes = $nb_existe = $nb_hits = $nb_requetes = $taille = $mem_hits = $mem_requetes = 0;
     989                echo "<div class='info div1'><h2>Mémoization SPIP - Le ".date(JOLI_DATE_FORMAT,time())."</h2>
     990                        <table cellspacing=0><tbody>
     991                        <tr class=tr-0><td class=td-0>_CACHE_NAMESPACE</td><td>"._CACHE_NAMESPACE."</td></tr>";
     992
     993                $nb_fantomes_apc = $nb_existe = $nb_speciales = $nb_invalides_spip = $nb_hits = $nb_requetes = $taille = $mem_hits = $mem_requetes = $taille = $taille_speciales = $taille_sans_speciales = $taille_invalides_spip = 0; // etc il en manque
     994                // FIXME faire classe ou structure de donnée pour collecter et afficher les stats
     995
     996                $meta_derniere_modif = lire_meta('derniere_modif');
     997
    991998                while (count($list)) {
    992999                        $d = array_pop($list);
     
    9941001                                $nb_existe++;
    9951002                                $taille += $d['mem_size'];
    996                                 if (!$naissance)
     1003                                if (!$naissance or ($naissance > $d['creation_time']))
    9971004                                        $naissance = date(JOLI_DATE_FORMAT,$d['creation_time']);
    9981005                                $nb_hits += $d['num_hits'];
     
    10001007                                $mem_hits += $d['mem_size']*$d['num_hits'];
    10011008                                $mem_requetes += $d['mem_size']*($d['num_hits'] + 1);
    1002                                 if (preg_match(XRAY_PATTERN_STATS_SPECIALES, $d['info'])) {
     1009                                if ($meta_derniere_modif > $d['creation_time']) {
     1010                                        $nb_invalides_spip++;
     1011                                        $taille_invalides_spip += $d['mem_size'];
     1012                                        $nb_hits_invalides_spip += $d['num_hits'];
     1013                                        $nb_requetes_invalides_spip += $d['num_hits'] + 1;
     1014                                        $mem_hits_invalides_spip += $d['mem_size']*$d['num_hits'];
     1015                                        $mem_requetes_invalides_spip += $d['mem_size']*($d['num_hits'] + 1);
     1016                                }
     1017                                elseif (preg_match(XRAY_PATTERN_STATS_SPECIALES, $d['info'])) {
    10031018                                        $nb_speciales++;
    10041019                                        $taille_speciales += $d['mem_size'];
     
    10181033                        }
    10191034                        else {
    1020                                 $nb_fantomes++;
    1021                                 $taille_fantomes += $d['mem_size'];
    1022                                 $nb_hits_fantomes += $d['num_hits'];
    1023                                 $nb_requetes_fantomes += $d['num_hits'] + 1;
    1024                                 $mem_hits_fantomes += $d['mem_size']*$d['num_hits'];
    1025                                 $mem_requetes_fantomes += $d['mem_size']*($d['num_hits'] + 1);
     1035                                $nb_fantomes_apc++;
     1036                                $taille_fantomes_apc += $d['mem_size'];
     1037                                $nb_hits_fantomes_apc += $d['num_hits'];
     1038                                $nb_requetes_fantomes_apc += $d['num_hits'] + 1;
     1039                                $mem_hits_fantomes_apc += $d['mem_size']*$d['num_hits'];
     1040                                $mem_requetes_fantomes_apc += $d['mem_size']*($d['num_hits'] + 1);
    10261041                        }
    10271042                };
     
    10351050        if ($nb_existe)
    10361051                echo "
    1037                 <tr class=tr-0><td class=td-0>Plus vieux cache</td><td>$naissance</td></tr>
    1038                 <tr class=tr-0><td class=td-0 title='meta spip'>Dernière invalidation</td><td>".date(JOLI_DATE_FORMAT, lire_meta('derniere_modif'))."</td></tr>
    1039                 <tr class=tr-0><td class=td-0 title='meta spip'>Invalidation de '".XRAY_OBJET_SPECIAL."'</td><td>".date(JOLI_DATE_FORMAT, lire_meta('derniere_modif_'.XRAY_OBJET_SPECIAL))."</td></tr>
    10401052                <tr class=tr-0><td class=td-0>Taille totale</td><td>".taille_en_octets($taille)."</td></tr>
    10411053                <tr class=tr-0><td class=td-0>Nb requetes</td><td>$nb_requetes</td></tr>";
     
    10471059        if ($nb_speciales)
    10481060                echo "
    1049                 <tr><td colspan=2><b>".XRAY_LABEL_STATS_SPECIALES."</b></td></tr>
     1061                <tr><td colspan=2><b> = ".XRAY_LABEL_STATS_SPECIALES."</b></td></tr>
    10501062                <tr class=tr-0><td class=td-0>Nb caches</td><td>$nb_speciales</td></tr>
    10511063                <tr class=tr-0><td class=td-0>Taille totale</td><td>".taille_en_octets($taille_speciales)."</td></tr>
     
    10541066                <tr class=tr-0><td class=td-0 title='Service par le cache pondéré par la taille'>Rendement</td><td>".round(100*$mem_hits_speciales/$mem_requetes_speciales,1)."%</td></tr>";
    10551067        else
    1056                 echo "<tr><td colspan=2>".XRAY_LABEL_STATS_SPECIALES." : aucun cache</td></tr>";
    1057                
     1068                echo "<tr><td colspan=2>= ".XRAY_LABEL_STATS_SPECIALES." : aucun cache</td></tr>";
     1069
    10581070        if ($nb_sans_speciales)
    10591071                echo "
    1060                 <tr><td colspan=2><b>".XRAY_LABEL_STATS_SPECIALES_EXCLUES."</b></td></tr>
     1072                <tr><td colspan=2><b>+ ".XRAY_LABEL_STATS_SPECIALES_EXCLUES."</b></td></tr>
    10611073                <tr class=tr-0><td class=td-0>Nb caches</td><td>$nb_sans_speciales</td></tr>
    10621074                <tr class=tr-0><td class=td-0>Taille totale</td><td>".taille_en_octets($taille_sans_speciales)."</td></tr>
     
    10651077                <tr class=tr-0><td class=td-0 title='Service par le cache pondéré par la taille'>Rendement</td><td>".round(100*$mem_hits_sans_speciales/$mem_requetes_sans_speciales,1)."%</td></tr>";
    10661078        else
    1067                 echo "<tr><td  colspan=2>".XRAY_LABEL_STATS_SPECIALES_EXCLUES." : aucun cache</td></tr>";
    1068                
    1069         if ($nb_fantomes)
     1079                echo "<tr><td  colspan=2>+ ".XRAY_LABEL_STATS_SPECIALES_EXCLUES." : aucun cache</td></tr>";
     1080               
     1081        if ($nb_invalides_spip)
    10701082                echo "
    1071                 <tr><td colspan=2><b>Caches périmés</b></td></tr>
    1072                 <tr class=tr-0><td class=td-0>Nb caches</td><td>$nb_fantomes</td></tr>
    1073                 <tr class=tr-0><td class=td-0>Total taille</td><td>".taille_en_octets($taille_fantomes)."</td></tr>
    1074                 <tr class=tr-0><td class=td-0>Nb anciennes requetes</td><td>$nb_requetes_fantomes</td></tr>
    1075                 <tr class=tr-0><td class=td-0>Nb anciens hits</td><td>$nb_hits_fantomes soit ".round(100*$nb_hits_fantomes/$nb_requetes_fantomes,1)."%</td></tr>
    1076                 <tr class=tr-0><td class=td-0 title='Service par le cache pondéré par la taille'>Rendement</td><td>".round(100*$mem_hits_fantomes/$mem_requetes_fantomes,1)."%</td></tr>";
     1083                <tr><td colspan=2><b>+ Invalidés par SPIP</b></td></tr>
     1084                <tr class=tr-0><td class=td-0>Nb caches</td><td>$nb_invalides_spip</td></tr>
     1085                <tr class=tr-0><td class=td-0>Taille totale</td><td>".taille_en_octets($taille_invalides_spip)."</td></tr>
     1086                <tr class=tr-0><td class=td-0>Nb requetes</td><td>$nb_requetes_invalides_spip</td></tr>
     1087                <tr class=tr-0><td class=td-0>Nb hits</td><td>$nb_hits_invalides_spip soit ".round(100*$nb_hits_invalides_spip/$nb_requetes_invalides_spip,1)."%</td></tr>
     1088                <tr class=tr-0><td class=td-0 title='Service par le cache pondéré par la taille'>Rendement</td><td>".round(100*$mem_hits_invalides_spip/$mem_requetes_invalides_spip,1)."%</td></tr>";
    10771089        else
    1078                 echo "<tr><td colspan=2>Aucun cache n'est périmé</td></tr>";
     1090                echo "<tr><td  colspan=2>+ Invalidés par SPIP : aucun cache</td></tr>";
     1091        echo "<tr class=tr-0><td class=td-0 title='meta spip'>Dernière invalidation</td><td>".date(JOLI_DATE_FORMAT, $meta_derniere_modif)."</td></tr>
     1092                <tr class=tr-0><td class=td-0 title='meta spip'>Invalidation de '".XRAY_OBJET_SPECIAL."'</td><td>".date(JOLI_DATE_FORMAT, lire_meta('derniere_modif_'.XRAY_OBJET_SPECIAL))."</td></tr>
     1093                <tr class=tr-0><td class=td-0>Plus vieux cache</td><td>$naissance</td></tr>";
     1094
     1095               
     1096        if ($nb_fantomes_apc)
     1097                echo "
     1098                <tr><td colspan=2><b>+ Caches périmés par APC</b></td></tr>
     1099                <tr class=tr-0><td class=td-0>Nb caches</td><td>$nb_fantomes_apc</td></tr>
     1100                <tr class=tr-0><td class=td-0>Total taille</td><td>".taille_en_octets($taille_fantomes_apc)."</td></tr>
     1101                <tr class=tr-0><td class=td-0>Nb anciennes requetes</td><td>$nb_requetes_fantomes_apc</td></tr>
     1102                <tr class=tr-0><td class=td-0>Nb anciens hits</td><td>$nb_hits_fantomes_apc soit ".round(100*$nb_hits_fantomes_apc/$nb_requetes_fantomes_apc,1)."%</td></tr>
     1103                <tr class=tr-0><td class=td-0 title='Service par le cache pondéré par la taille'>Rendement</td><td>".round(100*$mem_hits_fantomes_apc/$mem_requetes_fantomes_apc,1)."%</td></tr>";
     1104        else
     1105                echo "<tr><td colspan=2>+ Aucun cache n'est inaccessible</td></tr>";
    10791106
    10801107        echo "</table></div>";
Note: See TracChangeset for help on using the changeset viewer.