You are here

class MemoryDataCollector in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 vendor/symfony/http-kernel/DataCollector/MemoryDataCollector.php \Symfony\Component\HttpKernel\DataCollector\MemoryDataCollector

MemoryDataCollector.

@author Fabien Potencier <fabien@symfony.com>

Hierarchy

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\DataCollector
View 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;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
DataCollector::$data protected property
DataCollector::$valueExporter private property
DataCollector::serialize public function 1
DataCollector::unserialize public function 1
DataCollector::varToString protected function Converts a PHP variable to a string.
MemoryDataCollector::collect public function Collects data for the given Request and Response. Overrides DataCollectorInterface::collect
MemoryDataCollector::convertToBytes private function
MemoryDataCollector::getMemory public function Gets the memory.
MemoryDataCollector::getMemoryLimit public function Gets the PHP memory limit.
MemoryDataCollector::getName public function Returns the name of the collector. Overrides DataCollectorInterface::getName
MemoryDataCollector::lateCollect public function Collects data as late as possible. Overrides LateDataCollectorInterface::lateCollect
MemoryDataCollector::updateMemoryUsage public function Updates the memory usage data.
MemoryDataCollector::__construct public function