Происходит то, что в случайное время веб-страница выдает ошибку «Разрешено исчерпано памяти» в журналах Apache. У меня есть трассировка xdebug обоих случаев, когда проблема возникает и когда она работает нормально. Когда я сравниваю файлы трассировки, удивительно видеть записи журнала без какого-либо имени функции и случайного количества потребляемой ими памяти. Итак, я хочу понять две вещи.
У меня есть код ниже
if (function_exists('ini_set')) {
ini_set('include_path', ROOT . DS . 'lib' . PATH_SEPARATOR . ini_get('include_path'));
}
В случае ошибки его журнал трассировки имеет вид
2 23 0 0.007218 701448 function_exists 0 app/webroot/index.php 101 1 'ini_set'
2 23 1 0.007236 701448
2 24 0 0.007255 701592 ini_get 0 app/webroot/index.php 102 1 'include_path'
2 24 1 0.007277 701648
2 25 0 0.007288 701592 ini_set 0 app/webroot/index.php 102
2 'include_path' 'httpdocs/lib:.:/usr/share/pear:/usr/share/php'
2 25 1 0.007617 702016
2 26 0 0.008726 755816 include 1 lib/Cake/bootstrap.php app/webroot/index.php 104 0
В этом журнале есть две записи для Function Id 25, то есть ini_set (), с памятью 701592 и 702016. Память, используемая первой записью, составляет 702016-701592 = 424 байта, а память, используемая второй записью, составляет 755816-702016 = 53800 байтов.
Я не могу понять существование второй записи без какой-либо функции Name, и где именно используется память для второй записи?
Ниже находится журнал для другого запуска. Здесь снова две записи для функции Id 25 с памятью 645616 и 646040. Объем памяти, используемой первой записью, равен 646040-645616 = 424 байта (такой же, как ранее), а объем памяти, используемой второй записью, равен 646176-646040 = 136 байтов (в последней пробег был 53800 байт).
Опять же, где он привык и почему эта сумма меняется! Я вижу много таких отклонений в этих двух журналах трассировки, суммирующих до степени, вызывающей ошибку «Разрешено исчерпано память». Пожалуйста, помогите мне понять это.
2 23 0 0.000908 645472 function_exists 0 app/webroot/index.php 101 1 'ini_set'
2 23 1 0.000924 645472
2 24 0 0.000936 645616 ini_get 0 app/webroot/index.php 102 1 'include_path'
2 24 1 0.000952 645672
2 25 0 0.000960 645616 ini_set 0 app/webroot/index.php 102 2 'include_path' 'lib:.:/usr/share/pear:/usr/share/php'
2 25 1 0.000996 646040
2 26 0 0.001034 646176 include 1 lib/Cake/bootstrap.php app/webroot/index.php 104 0
Задача ещё не решена.
Других решений пока нет …