最近的版本中我们暂停了新功能的开发,着重于处理一些遗留的低概率崩溃和内存泄露问题。目前最新的版本中相关问题都已得到了修正,是目前最稳健的一个版本,将于近日发布正式版本。
什么是内存泄露
简单说就是应用因为任何原因,向系统申请了一段内存未正确释放,导致应用所使用的内存越来越高。
对于 Surge iOS,如果出现持续的泄露,内存占用会不断逼近系统限制,导致被终止重启。对于 Surge Mac,可以观察到内存占用不断提高。
内存泄露问题在计算机科学上一直是一个难题,即使是 iOS/macOS 的系统程序和内置应用,也经常会出现内存泄露的现象。这次修正的数个内存泄露问题也都十分隐蔽,比如当脚本使用 $httpClient 请求数据时,如果 H2 服务端在发送了部分数据后主动中断了该 stream,那可能会导致缓存的部分数据未能被正确释放,这种问题几乎只会在请求特定服务器时才会发生,所以难以被发现。
为此我们重新设计了新的内存泄露检测系统,用于分析这些低概率泄露问题,目前的表现相当良好,崩溃报告系统的数据显示,自 Mac 5.9.2 版本开始已经没有任何用户在遇到过可观测的内存泄露。
什么是内存泄露
简单说就是应用因为任何原因,向系统申请了一段内存未正确释放,导致应用所使用的内存越来越高。
对于 Surge iOS,如果出现持续的泄露,内存占用会不断逼近系统限制,导致被终止重启。对于 Surge Mac,可以观察到内存占用不断提高。
内存泄露问题在计算机科学上一直是一个难题,即使是 iOS/macOS 的系统程序和内置应用,也经常会出现内存泄露的现象。这次修正的数个内存泄露问题也都十分隐蔽,比如当脚本使用 $httpClient 请求数据时,如果 H2 服务端在发送了部分数据后主动中断了该 stream,那可能会导致缓存的部分数据未能被正确释放,这种问题几乎只会在请求特定服务器时才会发生,所以难以被发现。
为此我们重新设计了新的内存泄露检测系统,用于分析这些低概率泄露问题,目前的表现相当良好,崩溃报告系统的数据显示,自 Mac 5.9.2 版本开始已经没有任何用户在遇到过可观测的内存泄露。