《【英特尔徐君】 将TypeScript编译到WasmGC的全新实践.pdf》由会员分享,可在线阅读,更多相关《【英特尔徐君】 将TypeScript编译到WasmGC的全新实践.pdf(35页珍藏版)》请在三个皮匠报告上搜索。
1、将TypeScript编译编译到WasmGC的全新实实践徐君Intel软件研发工程师PART ONEWebAssembly简介PART THREE将TypeScript编译到WasmGC的技术方案PART TWOWebAssembly的典型应用及痛点PART FOUR应用展望什么是WebAssemblyWebAssembly工作原理WAMR发展历史01WebAssembly简介PortabilityCapabilitiesPerformanceSandboxing WebAssembly简介WebAssembly(wasm)是一个可移植、体积小、加载快并且兼容Web的全新格式安全沙箱隔离机制,
2、宿主资源访问可控制高效通过JIT/AOT技术加持,可接近原生应用的执行性能多语言支持C/C+,AssemblyScript,Python,Go,Rust,WebAssembly工作原理Embedded frame in JS(Web app,PWA)Standalone app(CDN,Serverless,Node.js)Shared library functions(Fast,portable,sandboxed libraries)Web StandaloneHost EnvironmentHardwareC/C+RustGo Compiler(Emscripten,Rustc,llv
3、m)Developer Toolchain Offline Compilation.wasmTransmission to DeviceHost glue code(JS/HTML.)x86ARMWASMMIPS.AOT compileJIT compileWasmtimeWAMRFeature APIs(Wasi,WebGPU.)OSWAMR发展历史2019年5月Intel开源WAMR(WebAssembly Micro Runtime)项目2019年11月以创始项目身份发起并加入Bytecode Alliance(BA)2021年10月转换为社区开放治理模式设计目标广泛的适用性:从嵌入式设
4、备到云端小尺寸,高性能的轻量级 WASM 运行时适配多种CPU架构(32bit and 64bit)和操作系统Intel SGX/TDX 一等公民支持浏览器中的应用独立运行时引擎应用WebAssembly在前端中的主要痛点总结02WebAssembly的典型应用及痛点浏览器应用案例浏览器应用案例浏览器应用案例浏览器应用特点浏览器上的应用主要来源:存量C/C+代码移植到浏览器Rust开发的新应用游戏、机器学习(TensorFlow)等性能要求较高的应用主要痛点:学习曲线陡峭,需要掌握系统级编程语言,手动管理内存应用生态匮乏,可复用程度低独立运行时引擎应用典型应用场景:物联网小程序函数计算可信计算
5、区块链大前端应用对WebAssembly的核心需求:模块化,方便动态安装、卸载执行效率高,模块尺寸小开发效率高,学习成本低大前端独立运行时引擎应用案例Disney ADKDisney application development kit自研底层框架,摆脱对浏览器的依赖通过WebAssembly Runtime提供应用开发能力高性能受管控的资源访问,安全性强使用Rust作为应用开发语言缺点:编程语言学习曲线陡峭,对开发人员要求高与host之间数据交互困难,需要大量用到序列化/反序列化独立运行时引擎应用案例Amazon prime videoPrime video software archit
6、ecture由纯JavaScript引擎转向WebAssembly+JavaScript双引擎将底层框架用Rust开发并迁移到WebAssembly获取更高的性能应用开发仍然采用JavaScript,已有应用无需重写节省约30M JavaScript heap空间,并提升启动速度两个runtime之间通过消息交互案例来源:https:/www.amazon.science/blog/how-prime-video-updates-its-app-for-more-than-8-000-device-types 将应用编程语言引入WebAssemblyQuickJS on WebAssembly