With APCu 5+, use apcu_* function to examine cache state
Summary: Ref T9640. APCu 5.0+ (for PHP7) uses `apcu_*` functions instead of `apc_` functions. Test for function existence and call the appropriate functions.
Test Plan: {F2352695}
Reviewers: chad
Reviewed By: chad
Maniphest Tasks: T9640
Differential Revision: https://secure.phabricator.com/D17198
This commit is contained in:
@@ -79,28 +79,40 @@ final class PhabricatorDataCacheSpec extends PhabricatorCacheSpec {
|
||||
}
|
||||
|
||||
private function initAPCCommonSpec() {
|
||||
$mem = apc_sma_info();
|
||||
$this->setTotalMemory($mem['num_seg'] * $mem['seg_size']);
|
||||
|
||||
$info = apc_cache_info('user');
|
||||
$this->setUsedMemory($info['mem_size']);
|
||||
$this->setEntryCount(count($info['cache_list']));
|
||||
|
||||
$cache = $info['cache_list'];
|
||||
$state = array();
|
||||
foreach ($cache as $item) {
|
||||
$info = idx($item, 'info', '<unknown-key>');
|
||||
$key = self::getKeyPattern($info);
|
||||
if (empty($state[$key])) {
|
||||
$state[$key] = array(
|
||||
'max' => 0,
|
||||
'total' => 0,
|
||||
'count' => 0,
|
||||
);
|
||||
|
||||
if (function_exists('apcu_sma_info')) {
|
||||
$mem = apcu_sma_info();
|
||||
$info = apcu_cache_info();
|
||||
} else if (function_exists('apc_sma_info')) {
|
||||
$mem = apc_sma_info();
|
||||
$info = apc_cache_info('user');
|
||||
} else {
|
||||
$mem = null;
|
||||
}
|
||||
|
||||
if ($mem) {
|
||||
$this->setTotalMemory($mem['num_seg'] * $mem['seg_size']);
|
||||
|
||||
$this->setUsedMemory($info['mem_size']);
|
||||
$this->setEntryCount(count($info['cache_list']));
|
||||
|
||||
$cache = $info['cache_list'];
|
||||
$state = array();
|
||||
foreach ($cache as $item) {
|
||||
$info = idx($item, 'info', '<unknown-key>');
|
||||
$key = self::getKeyPattern($info);
|
||||
if (empty($state[$key])) {
|
||||
$state[$key] = array(
|
||||
'max' => 0,
|
||||
'total' => 0,
|
||||
'count' => 0,
|
||||
);
|
||||
}
|
||||
$state[$key]['max'] = max($state[$key]['max'], $item['mem_size']);
|
||||
$state[$key]['total'] += $item['mem_size'];
|
||||
$state[$key]['count']++;
|
||||
}
|
||||
$state[$key]['max'] = max($state[$key]['max'], $item['mem_size']);
|
||||
$state[$key]['total'] += $item['mem_size'];
|
||||
$state[$key]['count']++;
|
||||
}
|
||||
|
||||
$this->setCacheSummary($state);
|
||||
|
||||
Reference in New Issue
Block a user