Действительный тест на ограничение памяти
У меня проблемы с аварийным модулем ION-Cube. Модуль импортирует данные csv в нашу базу данных, но если размер файла csv слишком велик (15+M), результатом будет внутренняя ошибка сервера.
Служба поддержки сказала мне, что на моем сервере недостаточно оперативной памяти для запуска модуля. На сервере встроена 1 Гб оперативной памяти, поэтому я написал простой тестовый скрипт, чтобы проверить, работает ли ini_set.
<pre>
<?php
function tryAlloc($megabyte){
echo "try allocating {$megabyte} megabyte...";
$dummy = str_repeat("-",1048576*$megabyte);
echo "pass.";
echo "Usage: " . memory_get_usage(true)/1048576;
echo " Peak: " . memory_get_peak_usage(true)/1048576;
echo "\n";
}
for($i=10;$i<1000;$i+=50){
$limit = $i.'M';
ini_set('memory_limit', $limit);
echo "set memory_limit to {$limit}\n";
echo "memory limit is ". ini_get("memory_limit")."\n";
tryAlloc($i-10);
}
?>
</pre>
Это работает без проблем. Есть ли серьезные недостатки в этом тесте? У нас много проблем с этим модулем, и служба поддержки постоянно говорит нам, что проблема заключается в нашем сервере. -.-
PS: Нет, я не могу получить доступ к php.ini. Нет, я не могу использовать.htaccess для установки предела памяти. Нет, у меня нет возможности редактировать исправления / отладки модуля.