Ejemplo n.º 1
0
 protected function displayObject($object)
 {
     global $wgLang;
     $cache = apc_cache_info($this->userMode ? 'user' : 'opcode');
     $s = Xml::openElement('div', array('class' => 'mw-apc-listing')) . Xml::openElement('table') . Xml::openElement('tbody') . Xml::openElement('tr') . Xml::element('th', null, wfMsg('viewapc-display-attribute')) . Xml::element('th', null, wfMsg('viewapc-display-value')) . Xml::closeElement('tr');
     $r = 1;
     foreach ($this->scopes as $list) {
         foreach ($cache[$list] as $entry) {
             if (md5($entry[$this->fieldKey]) !== $object) {
                 continue;
             }
             $size = 0;
             foreach ($entry as $key => $value) {
                 switch ($key) {
                     case 'num_hits':
                         $value = $wgLang->formatNum($value) . $wgLang->formatNum(sprintf(" (%.2f%%)", $value * 100 / $cache['num_hits']));
                         break;
                     case 'deletion_time':
                         $value = $this->formatValue($key, $value);
                         if (!$value) {
                             $value = wfMsg('viewapc-display-no-delete');
                             break;
                         }
                     case 'mem_size':
                         $size = $value;
                     default:
                         $value = $this->formatValue($key, $value);
                 }
                 $s .= APCUtils::tableRow($r = 1 - $r, wfMsgHtml('viewapc-display-' . $key), htmlspecialchars($value));
             }
             if ($this->userMode) {
                 if ($size > 1024 * 1024) {
                     $s .= APCUtils::tableRow($r = 1 - $r, wfMsgHtml('viewapc-display-stored-value'), wfMsgExt('viewapc-display-too-big', 'parseinline'));
                 } else {
                     $value = var_export(apc_fetch($entry[$this->fieldKey]), true);
                     $s .= APCUtils::tableRow($r = 1 - $r, wfMsgHtml('viewapc-display-stored-value'), Xml::element('pre', null, $value));
                 }
             }
         }
     }
     $s .= '</tbody></table></div>';
     return $s;
 }
Ejemplo n.º 2
0
 public static function doMemoryInfoTable($c, $mem, $title)
 {
     global $wgLang;
     $s = APCUtils::tableHeader(wfMsg('viewapc-info-memory'), 'mw-apc-img-table');
     if ($mem['num_seg'] > 1 || $mem['num_seg'] == 1 && count($mem['block_lists'][0]) > 1) {
         $memHeader = wfMsgExt('viewapc-memory-usage-detailed', 'parseinline');
     } else {
         $memHeader = wfMsgExt('viewapc-memory-usage', 'parseinline');
     }
     $hitHeader = wfMsgExt('viewapc-cache-efficiency', 'parseinline');
     $s .= APCUtils::tableRow(null, $memHeader, $hitHeader);
     if (APCImages::graphics_avail()) {
         $attribs = array('alt' => '', 'width' => APCImages::GRAPH_SIZE + 10, 'height' => APCImages::GRAPH_SIZE + 10);
         $param1 = wfArrayToCGI(array('image' => APCImages::IMG_MEM_USAGE));
         $param2 = wfArrayToCGI(array('image' => APCImages::IMG_HITS));
         $attribs1 = array('src' => $title->getLocalURL($param1)) + $attribs;
         $attribs2 = array('src' => $title->getLocalURL($param2)) + $attribs;
         $s .= APCUtils::tableRow(null, Xml::element('img', $attribs1), Xml::element('img', $attribs2));
     }
     $size = $mem['num_seg'] * $mem['seg_size'];
     $free = $mem['avail_mem'];
     $used = $size - $free;
     $freeMem = wfMsgExt('viewapc-memory-free', 'parseinline', $wgLang->formatSize($free), $wgLang->formatNum(sprintf('%.1f%%', $free * 100 / $size)));
     $usedMem = wfMsgExt('viewapc-memory-used', 'parseinline', $wgLang->formatSize($used), $wgLang->formatNum(sprintf('%.1f%%', $used * 100 / $size)));
     $hits = $c['num_hits'];
     $miss = $c['num_misses'];
     $reqs = $hits + $miss;
     $greenbox = Xml::element('span', array('class' => 'green box'), ' ');
     $redbox = Xml::element('span', array('class' => 'red box'), ' ');
     $memHits = wfMsgExt('viewapc-memory-hits', 'parseinline', $wgLang->formatNum($hits), $wgLang->formatNum(@sprintf('%.1f%%', $hits * 100 / $reqs)));
     $memMiss = wfMsgExt('viewapc-memory-miss', 'parseinline', $wgLang->formatNum($miss), $wgLang->formatNum(@sprintf('%.1f%%', $miss * 100 / $reqs)));
     $s .= APCUtils::tableRow(null, $greenbox . $freeMem, $greenbox . $memHits);
     $s .= APCUtils::tableRow(null, $redbox . $usedMem, $redbox . $memMiss);
     $s .= APCUtils::tableFooter();
     return $s;
 }