HarmonyOS napi开发过程中的泄漏问题

开发cronet项目时,需要使用napi给cronet封装一层接口,好让js调用方便。但使用的过程中通过日志发现有些napi_wrap的c++ 对象并没有释放,如何发现。在构造函数中登记this指针,在析构函数中取消登记。最后打印未取消登记的,发现有一堆未释放的 c++ 对象,如下图:

HarmonyOS napi开发过程中的泄漏问题 -鸿蒙开发者社区解决方案

napi_wrap接口的使用,请参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/napi-guidelines-V5

里面提到了napi_remove_wrap删除napi_ref,这样GC才能正常释放js_object。

GC机制:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/gc-introduction-V5

HarmonyOS napi_create_ark_runtime是否线程安全,只支持console和timer么,如果获取网络类型、音频路由等能用这个方案么 <a name="section850013297333"></a>

HarmonyOS
2024-12-25 09:51:27
967浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
aquaa

函数本身不涉及线程安全,它就只是在当前线程创建一个ark运行时的实例而已,create_ark_runtime加载的ArkTs模块目前只能用于:

1、console接口日志打印。

2、setInterval和setTimeout这两个定时器。

分享
微博
QQ
微信
回复
2024-12-25 11:40:20
相关问题
Lite Wearable 开发过程中疑问
12219浏览 • 2回复 待解决
HarmonyOS开发过程应用内存问题咨询
1068浏览 • 1回复 待解决
HarmonyOS 动画过程中UI残留
903浏览 • 1回复 待解决
HarmonyOS NAPI开发相关问题
1224浏览 • 1回复 待解决
NAPI开发问题
814浏览 • 1回复 待解决
在HAP编译过程中,本地依赖tgz
1618浏览 • 1回复 待解决
如何处理语音识别过程中错误?
927浏览 • 0回复 待解决