开发的服务卡片(Form)在后台长时间运行后,内存占用持续增长,通过DevEco Profiler发现JsForm对象未释放。
尝试方案:
1、在onDestroy()中手动调用releaseForm()并置空资源引用;
2、使用弱引用(WeakReference)管理卡片与数据源的绑定;
3、检查未发现异步任务未取消的情况。
期望结果:
需要定位JsForm未被回收的根本原因,是否有鸿蒙框架层的内存管理机制限制?或需调用特定API强制释放?
1 回答671 阅读✓ 已解决
3 回答556 阅读✓ 已解决
1 回答838 阅读✓ 已解决
1 回答508 阅读✓ 已解决
1 回答1.3k 阅读
1 回答771 阅读✓ 已解决
2 回答492 阅读✓ 已解决
1、使用DevEco Profiler的Allocation和Snapshot来进一步分问题泄漏点,看下JsForm对象是否是被其它对象一直持有导致内存持续增长。
参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides...
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides...
2、使用@ohos.hiviewdfx.jsLeakWatcher (js泄露检测),参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-refere...