PHP: Скрипт для потребления памяти
Понадобилось мне протестировать что произойдет когда скрипт съест 5 Гб памяти, а точнее отработает ли настройка memory_limit. Для того, чтобы зарезервировать нужный объем памяти написал скрипт..
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
<?php function convert($size) { $unit=array('b','kb','mb','gb','tb','pb'); return @round($size/pow(1024,($i=floor(log($size,1024)))),2).' '.$unit[$i]; } $allocateMemoryInMB = intval($argv[1] ?? 512); $buffer = []; do { $buffer[] = str_repeat('1', 1024*1024); $memUsage = memory_get_usage(true); echo convert($memUsage).PHP_EOL; // 123 kb } while ($memUsage < $allocateMemoryInMB*1024*1024); echo 'Press any key..'.PHP_EOL; $handle = fopen ("php://stdin","r"); $line = fgets($handle); fclose($handle); |
Использовать так
1 2 3 |
php test-mem.php |
по-умолчанию скрипт резервирует 512 мб ОЗУ, указать нужный объем памяти можно вот так
1 2 3 |
php test-mem.php 5120 |
тут 5120 = кол-во памяти для резервации в мб
Author: | Tags: /
| Rating:
Leave a Reply