64 lines
1.5 KiB
PHP
64 lines
1.5 KiB
PHP
<?php
|
|
namespace W3TC;
|
|
|
|
|
|
|
|
class UsageStatistics_Sources_Apc {
|
|
private $module_names = array();
|
|
|
|
public function __construct( $server_descriptors ) {
|
|
foreach ( $server_descriptors as $module_key => $i ) {
|
|
$this->module_names[] = $i['name'];
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public function get_snapshot() {
|
|
$cache = apcu_cache_info();
|
|
|
|
return array(
|
|
'items' => $cache['num_entries'],
|
|
'size_used' => $cache['mem_size'],
|
|
'get_hits' => $cache['num_hits'],
|
|
'get_total' => ( $cache['num_hits'] + $cache['num_misses'] )
|
|
);
|
|
}
|
|
|
|
|
|
|
|
public function get_summary() {
|
|
$cache = apcu_cache_info();
|
|
|
|
$time = time();
|
|
$runtime = $time - $cache['start_time'];
|
|
|
|
$mem = apcu_sma_info();
|
|
$mem_size = $mem['num_seg'] * $mem['seg_size'];
|
|
$mem_avail = $mem['avail_mem'];
|
|
$mem_used = $mem_size - $mem_avail;
|
|
|
|
$sum = array(
|
|
'used_by' => implode( ',', $this->module_names ),
|
|
'items' => $cache['num_entries'],
|
|
'size_used' => Util_UsageStatistics::bytes_to_size( $cache['mem_size'] ),
|
|
'get_hits' => $cache['num_hits'],
|
|
'get_total' => ( $cache['num_hits'] + $cache['num_misses'] ),
|
|
'runtime_secs' => $runtime,
|
|
'evictions' => $cache['expunges'],
|
|
'size_percent' => Util_UsageStatistics::percent(
|
|
$mem_used, $mem_avail )
|
|
);
|
|
|
|
if ( $sum['runtime_secs'] != 0 ) {
|
|
$sum['requests_per_second'] = sprintf( '%.2f',
|
|
$sum['get_total'] / $sum['runtime_secs'] );
|
|
}
|
|
|
|
$sum['get_hit_rate'] = Util_UsageStatistics::percent2(
|
|
$sum, 'get_hits', 'get_total' );
|
|
|
|
return $sum;
|
|
}
|
|
}
|