[ Index ]

PHP Cross Reference of phpBB-3.2.11-deutsch

title

Body

[close]

/vendor/symfony/http-kernel/DataCollector/ -> MemoryDataCollector.php (source)

   1  <?php
   2  
   3  /*
   4   * This file is part of the Symfony package.
   5   *
   6   * (c) Fabien Potencier <fabien@symfony.com>
   7   *
   8   * For the full copyright and license information, please view the LICENSE
   9   * file that was distributed with this source code.
  10   */
  11  
  12  namespace Symfony\Component\HttpKernel\DataCollector;
  13  
  14  use Symfony\Component\HttpFoundation\Request;
  15  use Symfony\Component\HttpFoundation\Response;
  16  
  17  /**
  18   * MemoryDataCollector.
  19   *
  20   * @author Fabien Potencier <fabien@symfony.com>
  21   */
  22  class MemoryDataCollector extends DataCollector implements LateDataCollectorInterface
  23  {
  24      public function __construct()
  25      {
  26          $this->data = array(
  27              'memory' => 0,
  28              'memory_limit' => $this->convertToBytes(ini_get('memory_limit')),
  29          );
  30      }
  31  
  32      /**
  33       * {@inheritdoc}
  34       */
  35      public function collect(Request $request, Response $response, \Exception $exception = null)
  36      {
  37          $this->updateMemoryUsage();
  38      }
  39  
  40      /**
  41       * {@inheritdoc}
  42       */
  43      public function lateCollect()
  44      {
  45          $this->updateMemoryUsage();
  46      }
  47  
  48      /**
  49       * Gets the memory.
  50       *
  51       * @return int The memory
  52       */
  53      public function getMemory()
  54      {
  55          return $this->data['memory'];
  56      }
  57  
  58      /**
  59       * Gets the PHP memory limit.
  60       *
  61       * @return int The memory limit
  62       */
  63      public function getMemoryLimit()
  64      {
  65          return $this->data['memory_limit'];
  66      }
  67  
  68      /**
  69       * Updates the memory usage data.
  70       */
  71      public function updateMemoryUsage()
  72      {
  73          $this->data['memory'] = memory_get_peak_usage(true);
  74      }
  75  
  76      /**
  77       * {@inheritdoc}
  78       */
  79      public function getName()
  80      {
  81          return 'memory';
  82      }
  83  
  84      private function convertToBytes($memoryLimit)
  85      {
  86          if ('-1' === $memoryLimit) {
  87              return -1;
  88          }
  89  
  90          $memoryLimit = strtolower($memoryLimit);
  91          $max = strtolower(ltrim($memoryLimit, '+'));
  92          if (0 === strpos($max, '0x')) {
  93              $max = \intval($max, 16);
  94          } elseif (0 === strpos($max, '0')) {
  95              $max = \intval($max, 8);
  96          } else {
  97              $max = (int) $max;
  98          }
  99  
 100          switch (substr($memoryLimit, -1)) {
 101              case 't': $max *= 1024;
 102              // no break
 103              case 'g': $max *= 1024;
 104              // no break
 105              case 'm': $max *= 1024;
 106              // no break
 107              case 'k': $max *= 1024;
 108          }
 109  
 110          return $max;
 111      }
 112  }


Generated: Wed Nov 11 20:33:01 2020 Cross-referenced by PHPXref 0.7.1