请问一下Workerman做web服务器时,发现页面的资源id一直在增长,是要自己手动去释放吗?难道Workerman不像传统模式页面执行完毕自动释放吗
$test =new Test(); var_dump( $test );
测试结果: object(Test)#7620 (1) {
workerman是常驻内存的,如果你这个对象被全局存储了起来,那么就不会释放。否则会被自动释放,id也会释放。
<?php //require_once __DIR__ . '/vendor/autoload.php'; use Workerman\Worker; $worker = new Worker('http://0.0.0.0:12345'); class a{} $worker->onMessage = function($connection, $data) { $a = new a; var_dump($a); $connection->send('hello'); }; Worker::runAll();
每次请求,对象和 id 总是被释放了的
谢谢。因为对象很多,那肯定是某个对象被缓存起来
是因为有一部分是全局对象,资源id就不会从1开始了,而是一直增长吗?
对象没释放,id就被占用了,就不会使用了吧。不然大家id都是1,要id有什么意义
这样岂不是id会越来越大。。。
不会无限大,对象释放了id就释放了。
workerman是常驻内存的,如果你这个对象被全局存储了起来,那么就不会释放。否则会被自动释放,id也会释放。
每次请求,对象和 id 总是被释放了的
谢谢。因为对象很多,那肯定是某个对象被缓存起来
是因为有一部分是全局对象,资源id就不会从1开始了,而是一直增长吗?
对象没释放,id就被占用了,就不会使用了吧。不然大家id都是1,要id有什么意义
这样岂不是id会越来越大。。。
不会无限大,对象释放了id就释放了。