Пишу тестилку РНР-скриптов. Скрипт достаточно прост: генерится мега-большой РНР файл, где тестируемая операция повторяется несколько тыс раз. Затем тот файл инклюдится главным скриптом, раз 50. И вот что я заметил. Тестов много, все разные, но на некоторых РНР течёт как сито: память жрётся от каждого include мегабайтами!Например, файл, в котором $a['a']=1;$a['c']=1;$a['b']=1; повторяется 10 тыс раз не приводит к утечке памяти, а конструкция $a[1]=1;$a[4]=1;$a[2]=1; привела к неконтролируемому выделению памяти (по мегабайту за итерацию) что в конечном итоге привело к скоропостижной кончине процесса.Вопрос прост: что за ...?С большим трудом я только нашел причину утечек памяти - это всего навсего два теста из ~30.P.S. Утечки памяти наблюдаются и в процессе работы скрипта, но течет по 10-20 килобайт, а не мегабайтами.
|