Ram*_*han 6 android memory-leaks ios dart flutter
我使用 Bloc 模式开发了一个 flutter 应用程序。一切都很好,直到我们在 iOS 中遇到内存崩溃。Android 版本运行良好,没有任何内存问题。但该应用程序的 iOS 版本确实存在内存问题。当导航到另一个页面或每个后台同步时,内存会保持在同一页面上不断累积(即使没有导航也会增加内存)。最终,应用程序因 Xcode 控制台中的“因内存问题而终止”而崩溃。我试过了:
Android 版本运行良好。仅适用于 iOS 的问题是什么?我们是否需要明确地在 flutter 中做一些其他的事情来释放 iOS 中的内存?由于我正在关闭块和流,理想情况下应该在关闭它们的同时处理内存,对吗?请参阅随附的屏幕截图,其中显示了 Xcode 中的内存堆。

您应该提供更多信息,即使您不放置代码,至少也应该提供您在应用程序/网络中使用的组件类型。例如,一些导致内存崩溃的组件通常是缓存图像、视频播放器、视频流、糟糕的数据缓存管理、渲染非常重的图像……
关于图像缓存有几个众所周知的建议,例如,如果您正在使用CachedNetworkImage,请不要忘记添加memCacheHeight和memCacheWidth参数。
当代码检测到状态对象永远不会再次构建时,您还可以尝试清理对象。
文档: https: //api.flutter.dev/flutter/widgets/NavigatorState/dispose.html
示例:
@override
void dispose() {
focusScopeNode.dispose();
for (final _RouteEntry entry in _history)
entry.dispose();
super.dispose();
}
Run Code Online (Sandbox Code Playgroud)
此外,您还必须检查如何使用导航器更改路线。您使用导航器Navigator.pushReplacementNamed()、Navigator.pushReplacement()推送...吗?也许你的屏幕正在堆叠。
| 归档时间: |
|
| 查看次数: |
332 次 |
| 最近记录: |