April 6, 2008 by Scratch
Как вы уже знаете, я пользуюсь виртуальным выделенным серваком от FirstVDS. У меня стоит Апач (версии 2.2), и, для ускорения работы со статическим контентом (то есть картинками, CSS-ами и прочими js-никами), установлен NGNIX.
Все было бы хорошо, пока я не решил поднять на этом же сервере SVN.
(more…)
Filed under: Deep Internals |
Comments (4)
January 31, 2008 by Scratch
Сразу хочу заметить, что все описанное ниже было получено методом черного ящика. Я не смотрел исходник PHP, я не знаю как устроены массивы в этом языке; все описанное — только предположения, которые я выдвигаю. Впрочем, именно эти предположения помоги мне справиться с одной весьма нетривиальной ошибкой.
Для начала, я приведу небольшой тестовый код, который наглядно продемонстрирует проблему.
< ?php
// This script runs more than 30 secs.
set_time_limit(0);
$test = array();
for ($i=0; $i<40000; $i++) {
$test[$i] = array();
for ($k=0; $k<5; $k++) {
$test[$i][$k] = array();
for ($j=0; $j<5; $j++) {
$test[$i][$k][$j] = $i+$k+$j;
}
}
}
// So, array will contain
// 40000 * 5 * 5 integers (1000000 elements)
// And sleep to have time to
// see memory usage in Task Manager
sleep(100);
?>
Как вы думаете, сколько будет занимать полученный массив $test()
в памяти?
(more…)
Filed under: Deep Internals |
Comments (3)