💡
原文中文,约5900字,阅读约需14分钟。
📝
内容提要
N-API是Node API的简写,是nodejs运行时接入原生模块的接口。N-API引入的抽象隔离可以升级nodejs运行时而不需要重新编译原生扩展模块。N-API在nodejs 10+后逐步稳定,并成为nodejs c-addon的主流编程标准。文章介绍了N-API的JS堆对象生命周期管理,包括N-API引用计数智能指针和可逃逸作用域。同时,文章提供了一个“二段式”引用计数优化方案。
🎯
关键要点
- N-API是Node API的简写,是nodejs运行时接入原生模块的接口。
- N-API引入的抽象隔离可以升级nodejs运行时而不需要重新编译原生扩展模块。
- N-API在nodejs 10+后逐步稳定,并成为nodejs c-addon的主流编程标准。
- 文章介绍了N-API的JS堆对象生命周期管理,包括引用计数智能指针和可逃逸作用域。
- N-API引用计数智能指针用于阻止JS VM的GC回收活跃的JS堆对象。
- WASM与N-API的堆对象生命周期管理策略存在差异,WASM的垫片程序更为复杂。
- N-API引用计数智能指针不具备自动跟踪功能,需要手动管理引用计数。
- 可逃逸作用域允许JS堆对象从作用域中输出一个值,增强了灵活性。
- 提出了“二段式”引用计数优化方案,通过智能指针简化引用计数管理。
- 文章最后提到交叉编译与动态库链接的相关话题,鼓励读者关注相关工程。
➡️