Параллельно изучаю С++ C# и т.п. и там много времени уделяется объемам информации и процессорному времени. А в книгах по PHP я этих вопросов пока не встречал, По сему родился вопрос: Сколько оперативы сожрет масив - PHP: <? $Arr[1000][10] = 'qwerty'; ?> т.е. 10 000 "пустышек" и одна string; и в зависимости от ответа есть еще несколко вопросов.
PHP: <?php $Arr[1000][10] = 'qwerty'; print_r($Arr); echo $Arr[0][0]; ?> Код (Text): Array ( [1000] => Array ( [10] => qwerty ) ) Notice: Undefined offset: 0 Пока параметр memory_limit не будет превышен, PHP будет работать
$a_memory = memory_get_usage(); $Arr = array(); $Arr[1000][10] = 'qwerty'; echo (memory_get_usage() - $a_memory);
Давайте начнем с того, почему так. В C++ вы сами управляете своей памятью. Там жизненно необходимо знать, сколько ее нужно выделить и отдать обратно. Разработка на C++ направлена на быстродействие и экономию памяти, по-этому там думают о ней много и часто. На C++ часто пишут долгоиграющие программы и демоны - именно из-за быстродействия и потребления памяти - ошибки в работе с памятью в таких программах приводят к утечкам, которые способны доставить проблем всей системе. С другой стороны. PHP управляет памятью сам, в скриптах не нужно знать ничего про память - интерпретатор сделает все сам и вернет когда нужно. PHP направлен на быстроту разработки и удобство модификации (в том числе и из-за отсутствия необходимости думать про память) и изначально не ставит задачи быстродействия и малой памяти. PHP в 99% - это короткоживущие программы, по-этому утечки памяти никого не волнуют - она будет освобождена интерпретатором, я против утечек памяти в долгоживущих интерпретаторах (типа mod_php) используют банальный способ его перезапуска. Исходя из этого вопрос - а зачем вы хотите думать про память в ПХП?