sonarrradarrplexorganizrnginxdashboardhtpcserverhomepagesabnzbdheimdallembycouchpotatonzbgetbookmarkapplication-dashboardmuximuxlandingpagestartpagelanding
		
		
		
		
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							120 lines
						
					
					
						
							2.5 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							120 lines
						
					
					
						
							2.5 KiB
						
					
					
				| <?php | |
| 
 | |
| /* | |
|  * This file is part of the Symfony package. | |
|  * | |
|  * (c) Fabien Potencier <fabien@symfony.com> | |
|  * | |
|  * For the full copyright and license information, please view the LICENSE | |
|  * file that was distributed with this source code. | |
|  */ | |
| 
 | |
| namespace Symfony\Component\HttpKernel\DataCollector; | |
| 
 | |
| use Symfony\Component\HttpFoundation\Request; | |
| use Symfony\Component\HttpFoundation\Response; | |
| 
 | |
| /** | |
|  * MemoryDataCollector. | |
|  * | |
|  * @author Fabien Potencier <fabien@symfony.com> | |
|  */ | |
| class MemoryDataCollector extends DataCollector implements LateDataCollectorInterface | |
| { | |
|     public function __construct() | |
|     { | |
|         $this->reset(); | |
|     } | |
| 
 | |
|     /** | |
|      * {@inheritdoc} | |
|      */ | |
|     public function collect(Request $request, Response $response, \Exception $exception = null) | |
|     { | |
|         $this->updateMemoryUsage(); | |
|     } | |
| 
 | |
|     /** | |
|      * {@inheritdoc} | |
|      */ | |
|     public function reset() | |
|     { | |
|         $this->data = array( | |
|             'memory' => 0, | |
|             'memory_limit' => $this->convertToBytes(ini_get('memory_limit')), | |
|         ); | |
|     } | |
| 
 | |
|     /** | |
|      * {@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; | |
|             // no break | |
|             case 'g': $max *= 1024; | |
|             // no break | |
|             case 'm': $max *= 1024; | |
|             // no break | |
|             case 'k': $max *= 1024; | |
|         } | |
| 
 | |
|         return $max; | |
|     } | |
| }
 | |
| 
 |