嵌套的php循环占用了千兆字节的linux内存

嵌套的php循环占用了千兆字节的linux内存,php,memcached,lamp,linux-mint,Php,Memcached,Lamp,Linux Mint,我正在使用opcache_reset() 还尝试在命令行中执行以下操作: I have some 7 nestings for/foreach php script which crashed my computer many times, and eaten each time 200-500 Mb memory, more than 3GB in total. I can not recover the memory. php的问题在哪里 apt clean apt

我正在使用
opcache_reset()

还尝试在命令行中执行以下操作:

    I have some 7 nestings for/foreach php script which crashed my computer many times, and eaten each time 200-500 Mb memory, more than 3GB in total. 

    I can not recover the memory. 
php的问题在哪里

apt clean
apt autoremove --purge
apt-get autoremove 
apt-get autoclean
apt-get clean
opcache_reset();
$wayA=[
“方式1”=>[
“pr_w1”=>[1,6,25,50],
‘收入_w1’=>0,
‘利润_w1’=>0,
'opex_w1'=>[],
‘t_r_w1’=>0,
],
“方式2”=>[
“价格”=>[5,10,25,50,90],
“收入_w2”=>0,
“利润2”=>0,
'opex_w2'=>0,
't_r_w2'=>0,
],          
];

对于($w=1;$w您不能在
for
循环中执行
$e+4
——变量永远不会递增,并且将无休止地运行

而是执行
$e+=4


此外,您可能需要考虑重构代码,使其更易于阅读,更重要的是,可维护。您可能不记得从现在起6个月后做了什么。

< p>您不能在< <代码> < < /Cult>循环> <代码> $e+4 < /代码> -该变量从不递增,并且将持续运行。

而是执行
$e+=4


也可以考虑重构你的代码,使它更易于阅读,更重要的是,可以维护。你可能不记得6个月后会做什么。

可能是使用虚拟内存的一些内存问题。你的代码太混乱了,我建议你读“干净代码”。,这本书中有一些很好的技巧。有没有一种方法可以恢复丢失的内存。因为我尝试了好几次,我今天从主目录中丢失了3GB。它在引导期间的内存测试后也没有恢复,没有运行上面的cmd命令(如clean),也没有使用php函数“opcache_reset())'可能是使用虚拟内存时出现内存问题。您的代码太混乱了,我建议您阅读“干净的代码”,这本书中有一些很好的技巧。有没有一种方法可以恢复丢失的内存。因为我尝试了好几次,我今天从主目录中丢失了3GB。它在引导期间的内存测试后也没有恢复,没有运行上面的cmd命令(如clean),也没有使用php函数“opcache_reset())'有没有办法恢复丢失的内存。由于我尝试了几次,我今天从主目录中丢失了3GB。它在启动期间的内存测试后也没有恢复,没有运行上面的cmd命令,如
clean
,也没有使用php函数'opcache_reset()“。当你说内存时,你指的是RAM还是磁盘空间?当你重新启动服务器时,RAM应该会清除。磁盘空间表示你正在某个地方进行某种类型的日志记录,并且正在填充。有没有办法恢复丢失的内存。由于我尝试了几次,我今天从主目录丢失了3GB。在测试期间进行内存测试后,它也没有恢复。”启动时,不要运行上面的cmd命令,如
clean
,也不要使用php函数“opcache_reset()”。当你说内存时,是指RAM还是磁盘空间?当你重新启动服务器时,RAM应该清除。磁盘空间表示你在某个地方正在进行某种类型的日志记录,并且正在填充。
opcache_reset();
$wayA = [ 
    'way1' => [
        'pr_w1' => [1, 6, 25, 50 ], 
        'revenue_w1' => 0, 
        'profit_w1' => 0, 
        'opex_w1' => [], 
        't_r_w1' => 0,
    ],

    'way2' => [
        'price_w2'=> [ 5, 10, 25, 50, 90 ],  
        'revenue_w2'=>0, 
        'profit_w2'=>0, 
        'opex_w2'=>0, 
        't_r_w2'=>0,
    ],          
];

for ( $w=1; $w<2; $w++ ) {

    for ( $e=1; $e<=21; $e+4 ) {
        $ansA[$e][$w]=[]; 
        $tw = $tz + $e * 100;
        $tz = $tw;

        for ( $t_rr=1; $t_rr<2; $t_rr++ ) {
            $t_r=5 + $t_rr*20; //tourists

            for ( $pr_rr=1; $pr_rr<2; $pr_rr++ ) {
                $pr_r= 5+ $pr_rr*15;  //price

                for ( $opex_rr=1; $opex_rr<2; $opex_rr++ ) { 
                    $opex_r= 9 + $opex_rr*20;  //opex

                    for( $N=1; $N<=2; $N++ ) { 

                        $pr_wX_key ='pr_w'.$N; //'price_w1' = 'pr_w1'
                        $wayX_key='way'.$N; 

                        foreach ( $wayA[$wayX_key][$pr_wX_key] as $pr ) {

$pr_wX = $pr / $pr_r; 
$opex_wX = $pr_wX * $opex_r/100; 
$t_NX = $tz * $t_r/100;
$rev_wX =  $t_NX * $pr_wX;//revenue = tourist numer * price
$prof_bt_wX =  $pr_wX - $opex_wX; //profit

$pr_wX_kX = 'pr_w'.$N; 
$opex_wX_kX = 'opex_w'.$N;
$t_r_wX_kX = 't_r_w'.$N;
$rev_wX_kX = 'rev_w'.$N;
$prof_bt_wX_kX = 'prof_bt_w'.$N;
$ansA[$w][$e][$t_NX_k]=[];      
$pr_wX_k= sprintf('%g',$pr_wX);   
$opex_wX_k= sprintf('%g',$opex_wX);                                      
$ansA[$w][$e][$t_NX_k][$pr_wX_k]=[];
$ansA[$w][$e][$t_NX_k][$pr_wX_k][$opex_wX_k]=[]; 
$ansA[$w][$e][$t_NX_k][$pr_wX_k][$opex_wX_k][$pr_wX_kX] =  $pr_wX; //'pr_w1'
$ansA[$w][$e][$t_NX_k][$pr_wX_k][$opex_wX_k][$opex_wX_kX] = $opex_wX; //'opex_w1'
$ansA[$w][$e][$t_NX_k][$pr_wX_k][$opex_wX_k][$t_r_wX_kX] = $t_NX; // 't_r_w1'
$ansA[$w][$e][$t_NX_k][$pr_wX_k][$opex_wX_k][$rev_wX_kX] = $rev_wX; // 'rev_w1'
$ansA[$w][$e][$t_NX_k][$pr_wX_k][$opex_wX_k][$prof_bt_wX_kX] = $prof_bt_wX; //'prof_bt_w1'

                        } // for ( way1['price_w1' as
                    } // for( $N=0; $N<4; $N++ ) 
                } // for ( t_r_w1=5; t_r_w1<100; t_r_w
            } // for ( opex_w1_r=9; opex_w
        } // for ( price_w1=1; price_w
    } // for ( $w=1; $w<250; $w++
} // for ( $e=1; $e<10