docker — php вылетает с большим количеством объектов

Описание:

Приведенный ниже тестовый сценарий работает нормально для 10 итераций, но дает сбой (ошибка сегментации) для 400000 итераций, в то время как он не должен падать.

Использует Php 7.2 на докере (Версия 17.09.0-ce-mac35 (19611))
без продления

Тестовый скрипт:

<?php
class Lim {
public $id;
public $inv;
public $fi;
function __construct($id) {
$this->id = $id;
$this->inv = new Inv($this);
}
};

class Inv {
public $inv;
public $fi;
function __construct($inv) { $this->inv = $inv; }
}

$max = 400000;
//$max = 10;

$lim0 = new Lim(0);
$limp = $lim0;
for ($i=1; $i<$max; $i++) {
$lim = new Lim($i);
$lim->fi = $limp->inv;
$limp->inv->fi = $lim;
$limp = $lim;
}

У кого-нибудь есть идеи почему?
Спасибо

0

Решение

Вы создаете новый $lim но не разрушая старый. Итак, у вас заканчивается память.

Добавь это

unset($lim);

после

$limp = $lim;
2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector