class MemoryDataCollector in Zircon Profile 8
Same name and namespace in other branches
- 8.0 vendor/symfony/http-kernel/DataCollector/MemoryDataCollector.php \Symfony\Component\HttpKernel\DataCollector\MemoryDataCollector
MemoryDataCollector.
@author Fabien Potencier <fabien@symfony.com>
Hierarchy
- class \Symfony\Component\HttpKernel\DataCollector\DataCollector implements \Symfony\Component\HttpKernel\DataCollector\Serializable, DataCollectorInterface
- class \Symfony\Component\HttpKernel\DataCollector\MemoryDataCollector implements LateDataCollectorInterface
Expanded class hierarchy of MemoryDataCollector
1 file declares its use of MemoryDataCollector
- MemoryDataCollectorTest.php in vendor/
symfony/ http-kernel/ Tests/ DataCollector/ MemoryDataCollectorTest.php
File
- vendor/
symfony/ http-kernel/ DataCollector/ MemoryDataCollector.php, line 22
Namespace
Symfony\Component\HttpKernel\DataCollectorView source
class MemoryDataCollector extends DataCollector implements LateDataCollectorInterface {
public function __construct() {
$this->data = array(
'memory' => 0,
'memory_limit' => $this
->convertToBytes(ini_get('memory_limit')),
);
}
/**
* {@inheritdoc}
*/
public function collect(Request $request, Response $response, \Exception $exception = null) {
$this
->updateMemoryUsage();
}
/**
* {@inheritdoc}
*/
public function lateCollect() {
$this
->updateMemoryUsage();
}
/**
* Gets the memory.
*
* @return int The memory
*/
public function getMemory() {
return $this->data['memory'];
}
/**
* Gets the PHP memory limit.
*
* @return int The memory limit
*/
public function getMemoryLimit() {
return $this->data['memory_limit'];
}
/**
* Updates the memory usage data.
*/
public function updateMemoryUsage() {
$this->data['memory'] = memory_get_peak_usage(true);
}
/**
* {@inheritdoc}
*/
public function getName() {
return 'memory';
}
private function convertToBytes($memoryLimit) {
if ('-1' === $memoryLimit) {
return -1;
}
$memoryLimit = strtolower($memoryLimit);
$max = strtolower(ltrim($memoryLimit, '+'));
if (0 === strpos($max, '0x')) {
$max = intval($max, 16);
}
elseif (0 === strpos($max, '0')) {
$max = intval($max, 8);
}
else {
$max = (int) $max;
}
switch (substr($memoryLimit, -1)) {
case 't':
$max *= 1024;
case 'g':
$max *= 1024;
case 'm':
$max *= 1024;
case 'k':
$max *= 1024;
}
return $max;
}
}