ShadowsocksR-Live / iShadowsocksR

ShadowsocksR (SSRoT) client for iOS
GNU General Public License v3.0
574 stars 326 forks source link

EXC_RESOURCE -> PacketTunnel[7988] exceeded mem limit: ActiveHard 15 MB (fatal) #58

Closed 86speed closed 2 years ago

86speed commented 3 years ago

使用Instruments检查是没有内存泄漏的,但ios使用uutest.cn测速(软件下载地址:uuspeed.uutest.cn),测试到上传速度的时候,会被系统kill掉,提示内存超过15MB EXC_RESOURCE -> PacketTunnel[7988] exceeded mem limit: ActiveHard 15 MB (fatal)

image libuv、tun2socks-iOS、ssrbuffer.c 不确定从哪块入手、对c不熟 是不是可以把ssrbuffer 替换成 circular buffer

ssrlive commented 3 years ago

如果短时间发起大量连接,libuv的事件循环来不及处理,就会造成内存消耗,我在Windows机器上几乎每天挂着代理,开着视频,连续运行几天都没事, 内存占用始终只有 15MB ±.

86speed commented 3 years ago

几乎

如果短时间发起大量连接,libuv的事件循环来不及处理,就会造成内存消耗,我在Windows机器上几乎每天挂着代理,开着视频,连续运行几天都没事.

有没什么解决思路?或相关资料?

ssrlive commented 3 years ago

你先看看那个测试软件短时间发起了多少连接,再进一步研究,如果连接很少,那就是 SSR-N 的问题; 如果很多,那就没什么好的办法处理这个 issue 了。

86speed commented 3 years ago

连接数不多 还没有看视频多,看视频内存一直再8MB左右 image

image

ssrlive commented 3 years ago

那就不清楚为什么会造成数据积压了。 发现有四个连接数据吞吐量很大。

86speed commented 3 years ago

测速的时候查看instruments 开辟了2w+地址 image

ssrlive commented 3 years ago

这种极限施压的情况估计是iOS不欢迎的,觉得还是不折腾了。

ssrlive commented 3 years ago

总觉得苹果应该给用户一个选择,特定某个应用的后台可以使用最大的内存数量,让用户决定。世界就和平了。