NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

JavaScript WeakRefs and TC39 standardization

  • 2020-02-08
  • 本文字数:1790 字

    阅读完需:约 6 分钟

JavaScript WeakRefs and TC39 standardization

GMTC 深圳 2019 大会上,Daniel Ehrenberg 讲师做了《JavaScript WeakRefs and TC39 standardization》主题演讲,主要内容如下。


演讲简介


TC39 is the committee which defines the JavaScript standard. JavaScript developers have been telling us for many years that they need weak references and finalizer callbacks: These capabilities let programs hook into garbage collection to free up related resources. After several years of debate and refinement, TC39 has settled on a design for WeakRefs and FinalizationGroups which has reached Stage 3 in its process and will likely soon be shipping in browsers and Node.js. In this talk, I will explain how to use WeakRefs, as well as how TC39 works and how to get involved, so that we can work together for the future of JavaScript.


  1. Use cases for WeakRefs and FinalizationGroups

  2. (1) In-memory cache

  3. (2) Triggering errors on stranded resources

  4. (3) Using WebAssembly memory from JavaScript

  5. (4) In-memory cache with tombstone cleanup

  6. How TC39 develops JavaScript

  7. (1) What is TC39?

  8. (2) Development of the JavaScript standard

  9. (3) TC39 stage process

  10. (4) Some recent TC39 proposals

  11. Details of WeakRefs in TC39

  12. (1) History of this proposal in TC39

  13. (2) WeakRef and FinalizationGroup APIs

  14. (3) Weak guarantees in WeakRef/FinalizationGroup behavior

  15. (4) Scheduing interactions with deref() and FinalizationGroup callbacks

  16. Participating in TC39

  17. (1) Giving feedback on proposals via GitHub

  18. (2) Helping with tests and documentation

  19. (3) Creating implementations in Babel, tools, JS engines, etc

  20. (4) Joining Ecma to be a TC39 delegate


Audience benefits:


  1. Learn to use the new JavaScript WeakRefs feature

  2. Get involved in shaping the future of JavaScript through TC39


Frontier highlights:


WeakRefs and FinalizationGroups can lead to more precise, efficient memory consumption in modern JavaScript


Knowledge reserve:


  1. Know simple JavaScript

  2. Understand what garbage collection is


参考翻译


Javascript Weakrefs 和 TC39 标准化


内容大纲


TC39 委员会负责制定 JavaScript 标准。多年来,JavaScript 开发人员一直告诉委员会,他们需要弱引用和 Finalizer 回调:这些功能使得程序可以连接到垃圾收集中,以释放相关资源。经过几年的争论和改进,TC39 已经确定了 WeakRefs 和 FinalizationGroups 的一种设计方案,目前已经到了第 3 阶段,可能很快就会在浏览器和 Node.js 中发布。在本次演讲中,我将解释如何使用 Weakrefs,然后介绍 TC39 是如何工作的,以及如何参与其中,以便大家能够为 JavaScript 的未来共同努力。


  1. WeakRefs 和 FinalizationGroups 的用例

  2. (1)内存缓存

  3. (2)滞留资源触发错误

  4. (3)使用 JavaScript 中的 WebAssembly 内存

  5. (4)带逻辑删除的内存缓存

  6. TC39 如何开发 JavaScript

  7. (1)什么是 TC39?

  8. (2)JavaScript 标准的发展过程

  9. (3)TC39 阶段流程

  10. (4)近期 TC39 的一些建议

  11. TC39 中的 WeakRefs 细节

  12. (1)TC39 中本提案的历史

  13. (2)WeakRef 和 FinalizationGroup API

  14. (3)WeakRef/FinalizationGroup 行为中的弱保证

  15. (4)调度与 deref

  16. (5)和 FinalizationGroup 回调的交互

  17. 参与 TC39

  18. (1)通过 GitHub 反馈提案

  19. (2)帮助测试和文档

  20. (3)在 Babel、工具、JS 引擎等中创建实现

  21. (4)加入 Ecma 成为 TC39 代表


听众受益点


  1. 学习使用新的 JavaScript WeakRefs 特性

  2. 通过 TC39 参与塑造 JavaScript 的未来


前沿亮点


WeakRefs 和 finalizationgroup 可以使现代 JavaScript 中的内存使用更精确、更高效。


知识储备


  1. 了解简单的 JavaScript

  2. 了解什么是垃圾收集


讲师介绍


Daniel Ehrenberg,TC39 核心成员。


Daniel is an engineer at Igalia, an open source software cooperative. He participates in the TC39 and has dabbled in WebAssembly and web standards. He also worked on V8.


Daniel 是 TC39 的核心成员,他就职于 Igalia,这是一家自由软件咨询公司,希望通过自由软件让世界更美好。Daniel 还涉猎 WebAssembly 和 Web 标准,也参与了 V8 的开发。












完整演讲 PPT 下载链接


https://gmtc.infoq.cn/2019/shenzhen/schedule


2020-02-08 19:34576

评论

发布
暂无评论
发现更多内容

ARTS 打卡第 1 周

atom

ARTS 打卡第 1 周

Johnson

ARTS 打卡计划

Ubuntu22系统安装OpenJDK详细教程。

百度搜索:蓝易云

云计算 Linux ubuntu 运维 Openjdk

Perfectly Clear Workbench for mac(智能图像清晰处理软件) 4.6.0.2594激活版

mac

图像处理软件 苹果mac Windows软件下载 Perfectly Clear

前缀树的增删改查

程序员在修行

算法

开发调试更便捷!火山引擎DataLeap提供Notebook交互式开发体验

字节跳动数据平台

大数据 数据中台 notebook 数据研发 企业号 8 月 PK 榜

Visio Viewer for Mac(Visio文件编辑查看工具) v3.1.0中文激活版

mac

苹果mac Windows软件下载 Visio Viewer 文件编辑查看工具

奇会智能应用CnosDB打造新一代AI安防平台

CnosDB

时序数据库 CnosDB 奇会智能

进击的ZGC,带你细品JDK21中ZGC地进化

摸鱼编程

jdk ZGC JVM GC 低延迟

Nautilus Chain 主网上线拉开模块化序幕,一文纵览生态项目

西柚子

Nautilus Chain 主网上线拉开模块化序幕,一文纵览生态项目

股市老人

24. 装饰器语法与应用

茶桁

Python 装饰器

ARTS 打卡第 10 天

自由

ARTS 打卡计划

Nautilus Chain 主网上线拉开模块化序幕,一文纵览生态项目

EOSdreamer111

ARTS Week 1

Geek_c25301

Microsoft Remote Desktop mac(微软远程连接软件)中文版软件介绍

mac

microsoft remote desktop 苹果mac Windows软件 远程桌面连接工具

关于学习基础知识的自我思考

程序员在修行

自我思考

Nautilus Chain 主网上线拉开模块化序幕,一文纵览生态项目

BlockChain先知

Mybatis中的一二级缓存

捡对象的cy

mybatis缓存

ARTS打卡第一周

穿过生命散发芬芳

ARTS 打卡计划

面试官:JVM是如何判定对象已死的?学JVM必会的知识!

Java随想录

Java JVM

k8s 水平和垂直扩缩容

程序员在修行

架构设计

前端使用TypeScript实现上传文件到MinIO

喵个咪

typescript OSS Minio axios gin

Nautilus Chain 主网上线拉开模块化序幕,一文纵览生态项目

大瞿科技

用Go编写ChatGPT插件

俞凡

golang 人工智能 ChatGPT

蓝易云搭建RUOYI系统教程。

百度搜索:蓝易云

云计算 Linux 运维 Ruoyi 云服务器

工作中你遇到的玄乎问题 90%是自己犯了某个很傻的错误导致的

程序员在修行

debug trouble shooting

究竟可观测性能给我们带来什么?

刘征

DevOps 监控 可观测性 SRE 运维、

ARTS 打卡第一周

程序员在修行

智能合约

麦田的守望者

Studio One 6 for mac(音乐制作工具) v6.2.0中文激活版

mac

Studio One 音乐制作软件 苹果mac Windows软件

JavaScript WeakRefs and TC39 standardization_GMTC_Daniel Ehrenberg_InfoQ精选文章