php崩溃了太多的对象

时间:2017-12-13 02:38:38

标签: php docker segmentation-fault

说明

下面的测试脚本可以正常工作10次,但崩溃(分段错误)400000次迭代,但不应该崩溃。

在docker上使用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;
}

有谁知道为什么? 感谢

1 个答案:

答案 0 :(得分:2)

您正在创建新的$lim但不会破坏旧的unset($lim); 。所以你的内存不足了。

添加此

$limp = $lim;

org.apache.catalina.util.LifeCycleSupport.java