php原本设计是用了一次就丢了的,这样用基本没有内存泄露的问题,就是每次要重新构建速度会慢。
php常驻的情况内存泄露发生的概率就很高了
php主流常驻框架是解决方案也是用了就丢,但不是立刻就丢:
1·roadrunner
.rr.json的配置文件
{
"http": {
"address": "127.0.2.1:80",
"workers": {
"command": "php psr-worker.php",
"pool": {
"numWorkers": 4,
"maxJobs": 4800
}
}
}
}
maxJobs 4800表示接受4800个请求后,重新启新的服务代替旧的服务,旧的服务占用的内存放掉就没有问题了。
经过性能测试,相比没有重启设置,性能只损失了十分之一,完全可以接受。
2·workerman 手册里有讲如何设置workerman处理一定请求后重启当前进程
http://doc.workerman.net/faq/max-requests.html
3·swoole 手册里有讲 max_request 配置