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; }
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; }