php swoole 内存,swoole 内存会越来越大吗_PHP开发框架教程

4ce45bdc576ad0575f6ed4ebe1583beb.png

Server内存治理机制

Server启动后内存治理的底层道理与一般php-cli顺序一致。细致请参考Zend VM内存治理方面的文章。

部分变量 (引荐进修: swoole视频教程)

在事宜回调函数返回后,一切部分对象和变量会悉数接纳,不须要unset。假如变量是一个资本范例,那末对应的资本也会被PHP底层开释。

function test()

{

$a = new Object;

$b = fopen('/data/t.log', 'r+');

$c = new swoole_client(SWOOLE_SYNC);

$d = new swoole_client(SWOOLE_SYNC);

global $e;

$e['client'] = $d;

}

$a, $b, $c 都是部分变量,当此函数return时,这3个变量会马上开释,对应的内存会马上开释,翻开的IO资本文件句柄会马上封闭。

$d 也是部分变量,然则return前将它保留到了全局变量$e,所以不会开释。当实行unset($e[‘client’])时,而且没有任何其他PHP变量仍然在援用$d变量,那末$d就会被开释。

全局变量

在PHP中,有3类全局变量。

运用global关键词声明的变量

运用static关键词声明的类静态变量、函数静态变量

PHP的超全局变量,包含$_GET、$_POST、$GLOBALS等

全局变量和对象,类静态变量,保留在Server对象上的变量不会被开释。须要顺序员自行处理这些变量和对象的烧毁事情。

class Test

{

static $array = array();

static $string = '';

}

function onReceive($serv, $fd, $reactorId, $data)

{

Test::$array[] = $fd;

Test::$string .= $data;

}

在事宜回调函数中须要特别注重非部分变量的array范例值,某些操纵如 TestClass::$array[] = “string” 大概会形成内存走漏,严峻时大概发生爆内存,必要时应该注重清算大数组。

在事宜回调函数中,非部分变量的字符串举行拼接操纵是必需警惕内存走漏,如 TestClass::$string .= $data,大概会有内存走漏,严峻时大概发生爆内存。

以上就是swoole 内存会越来越大吗的细致内容,更多请关注ki4网别的相干文章!

为木唯品 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权

转载请注明原文链接:swoole 内存会越来越大吗_PHP开发框架教程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值