Home
Document
Q&A
Video
Donate
Source Code
Code-Galaxy 云原生平台
Business
Swoole Tracker
Swoole Compiler
Login
Register
全部
提问
分享
讨论
建议
公告
开发框架
发表新帖
在swoole 中, 使用地址引用自身,造成内存增加
### 问题描述 在swoole 中, 使用地址引用自身,造成内存增加 memory use:14.671089172363M memory use:14.671783447266M memory use:14.672477722168M memory use:14.67317199707M memory use:14.673866271973M ### Swoole版本,PHP版本,以及操作系统版本信息 ``` PHP 7.4.29 (cli) (built: Apr 14 2022 11:48:33) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies with Zend OPcache v7.4.29, Copyright (c), by Zend Technologies swoole Swoole => enabled Author => Swoole Team <team@swoole.com> Version => 4.8.7 Built => Mar 4 2022 15:27:43 coroutine => enabled with boost asm context kqueue => enabled rwlock => enabled openssl => OpenSSL 1.1.1m 14 Dec 2021 dtls => enabled http2 => enabled pcre => enabled zlib => 1.2.11 brotli => E16777225/D16777225 async_redis => enabled Directive => Local Value => Master Value swoole.enable_coroutine => On => On swoole.enable_library => On => On swoole.enable_preemptive_scheduler => Off => Off swoole.display_errors => On => On swoole.use_shortname => On => On swoole.unixsock_buffer_size => 262144 => 262144 ``` ### 相关代码 ```php $callback = function() use (&$callback) {}; ``` ### 你期待的结果是什么?实际看到的错误信息又是什么? 解决办法可以先定义方法,再直接调用,不使用use,但是问题是第三方包,可能包里有很多很多这种,修改代码的方式肯定是不现实的,不知道有没有别的办法检测到内存占用或者释放方法 其实最根本的问题就是php的生态composer大部分都是fastcgi的包,不太适用于swoole,一个是不想重新造轮子,二个是希望直接使用,但还可以有办法处理内存泄漏问题
发布于4周前 · 10 次浏览 · 来自
提问
leiyu
### 问题描述 在swoole 中, 使用地址引用自身,造成内存增加 memory use:14.671089172363M memory use:14.671783447266M memory use:14.672477722168M memory use:14.67317199707M memory use:14.673866271973M ### Swoole版本,PHP版本,以及操作系统版本信息 ``` PHP 7.4.29 (cli) (built: Apr 14 2022 11:48:33) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies with Zend OPcache v7.4.29, Copyright (c), by Zend Technologies swoole Swoole => enabled Author => Swoole Team <team@swoole.com> Version => 4.8.7 Built => Mar 4 2022 15:27:43 coroutine => enabled with boost asm context kqueue => enabled rwlock => enabled openssl => OpenSSL 1.1.1m 14 Dec 2021 dtls => enabled http2 => enabled pcre => enabled zlib => 1.2.11 brotli => E16777225/D16777225 async_redis => enabled Directive => Local Value => Master Value swoole.enable_coroutine => On => On swoole.enable_library => On => On swoole.enable_preemptive_scheduler => Off => Off swoole.display_errors => On => On swoole.use_shortname => On => On swoole.unixsock_buffer_size => 262144 => 262144 ``` ### 相关代码 ```php $callback = function() use (&$callback) {}; ``` ### 你期待的结果是什么?实际看到的错误信息又是什么? 解决办法可以先定义方法,再直接调用,不使用use,但是问题是第三方包,可能包里有很多很多这种,修改代码的方式肯定是不现实的,不知道有没有别的办法检测到内存占用或者释放方法 其实最根本的问题就是php的生态composer大部分都是fastcgi的包,不太适用于swoole,一个是不想重新造轮子,二个是希望直接使用,但还可以有办法处理内存泄漏问题
赞
0
分享
收藏
提问
分享
讨论
建议
公告
开发框架
评论
2022-07-18
Rango
循环引用可能会引起内存泄露,可以在适当位置执行`gc_collect_cycles()`函数,去尝试强制回收。
赞
1
回复
微信公众号
热门内容
- swoole针对400的请求--TRACE Port_onRead_http() (ERRNO 7102): Bad Request: unknown protocol from session#193 on 0.0.0.0:9505
- 基于Swoole+PHP的超高性能短信网关(CMPP、SMPP)模拟器
- http服务中,使用write分段输出文件。设置header总文件长度无用
- Call to undefined function Swoole\Coroutine\run() 是怎么回事啊?
- Swoole Loader扩展 如何下载,https://business.swoole.com/trial/download/ 404
- 请教当使用request主动推送的时候,产生新的连接,及会马上关闭连接问题
- 为什么连接池只创建一个连接
- timer定时器,启动一下,突然执行了1万多次,这是怎么回事呢?
- 在swoole 中, 使用地址引用自身,造成内存增加
- windows 配置wss链接,链接不成功
暂无回复的问答
- 关于openssl CURL WARNING swSSL_connect: SSL_connect(fd=69) failed. Error: error:141A318A:SSL routines:tls_process_ske_dhe:dh key too small[1|394]
- 请问那个一键协程化的代码是放外面还是set里面
- 多个模型如何进行事务异常回退?
- websocket开启wss报错
- 协程tcp服务器如何使用多进程?recv()方法接收信息,打印出来的pid一直是同一个。没用使用到多进程啊。