《原生技术&内核 - 3 - 徐君 - TypeScript+WebAssembly_前端框架技术底座的新方向 .pdf》由会员分享,可在线阅读,更多相关《原生技术&内核 - 3 - 徐君 - TypeScript+WebAssembly_前端框架技术底座的新方向 .pdf(23页珍藏版)》请在三个皮匠报告上搜索。
1、徐君TypeScript+WebAssembly:前端框架技术底座的新向目录 JavaScript在端侧面临的挑战 WebAssembly的优势与应用案例 WebAssembly在端侧应用的挑战 基于TypeScript+WebAssembly的新方向JavaScript在终端开发中的困境项目维护困难 JavaScript没有类型信息,没有类型安全保障性能与资源瓶颈 启动速度慢 运行效率低 内存占用大JavaScript引擎选型挑战 由Google开发,主要用于Chrome浏览器和Node.js JIT加持,性能强劲 内存消耗高,footprint大,资源受限设备不适用V8 由苹果开发,用于S
2、afari浏览器和WebKit引擎 第三方app不支持JIT,仅解释执行 在IOS上不增加包体积,但对Android不友好JSC 由Fabrice Bellard开发,轻量级的JavaScript引擎 不支持JIT,仅解释执行 体积小QuickJS高性能轻量级JavaScript无法静态编译,决定了其runtime无法同时兼顾性能和资源消耗WebAssembly的特点与优势WebAssembly(wasm)WebAssembly(wasm)是一个可移植、体积小、加载快并且兼容WebWeb的全新格式 安全 沙箱隔离机制,宿主资源访问可控制 高效 静态类型 通过JIT/AOT技术加持,可接近原生应
3、用的执行性能 多语言支持 C/C+,AssemblyScript,Python,Go,Rust,PortabilityCapabilitiesPerformanceSandboxing跨平台低抽象层次的字节码长期的可维护性标准的分发格式兼容性保障更小的文件尺寸紧凑的二进制格式WebAssembly Micro Runtime(WAMR)WAMR于2019年由英特尔捐赠字节码联盟(BA),目前是BA的两个Wasm runtime开源项目之一已大量应用于商业产品,技术委员会成员来自Intel、小米、蚂蚁、亚马逊、索尼、西门子和Midokura完整支持WASM MVPWASM MVP。积极跟进POS
4、T MVPPOST MVP丰富的执行模式:Interpreter(classic,fast)JIT(两级),AOT,dynamic PGO自研AoT Module LoaderAoT Module Loader源码调试支持WASI多模块,多线程SIMD128XIPWasmGC支持的CPUCPU架构X86-32,X86-64ARM,THUMB,AARCH64MIPS,ARCXTENSA,RISC-V支持的操作系统Linux,SGX-Linux,Windows,MacOSAndroid,IOSZephyr,AliOS Things,VxWorks,RT-Threads,OpenRTOSWebAss
5、embly在终端的应用案例Disney application development kitDisney application development kit自研底层框架,摆脱对浏览器的依赖通过WebAssembly Runtime提供应用开发能力高性能受管控的资源访问,安全性强使用Rust作为应用开发语言WebAssembly在终端的应用案例Prime video software architecturePrime video software architecture 由纯JavaScript引擎转向WebAssembly+JavaScript双引擎 将底层框架用Rust开发并迁移到
6、WebAssembly获取更高的性能 节省约30M JavaScript heap空间,并提升启动速度WebAssembly在终端应用的挑战目前WebAssembly支持的语言对终端开发不友好C/C+/RustC/C+/Rust 直接编译成WebAssembly 高性能 需要手动内存管理JavaScript/PythonJavaScript/Python 将各自的VM编译到WebAssembly 较高的内存开销和性能损耗 调试困难学习效率学习效率运行效率运行效率开发效率开发效率Wasmnizer-ts:TypeScript+WebAssembly构建前端新底座TypeScript是一个带有类型