谷歌 Chrome 开发者博客官宣:Chrome 已默认启用 WebAssembly 垃圾回收 (WasmGC) 功能 —— 能够将具有 GC 的编程语言编译为 WebAssembly (Wasm)。
下面是示例代码
import kotlinx.browser.documentimport kotlinx.dom.appendTextimport org.w3c.dom.HTMLDivElementfun main() {
(document.getElementById("warning") as HTMLDivElement).style.display = "none"
document.body?.appendText("Hello, ${greet()}!")
}fun greet() = "world"
据介绍,WasmGC 是 WebAssembly 社区群组发布的一项提案。当前的 Wasm 最小可行化实现只能处理线性内存中的 number 类型数据,即整数和浮点数。随着引用类型 (reference types) 提案的发布,Wasm 还可以保留外部引用。
WasmGC 现在添加了结构体和数组堆类型,因此支持非线性内存分配。每个 WasmGC 对象都有固定的类型和结构,这使得虚拟机可以轻松生成有效的代码来访问其字段,而不会像 JavaScript 等动态语言那样存在去优化的风险。
因此,该提案通过结构和数组堆类型为 WebAssembly 增加了对高级托管语言的有效支持,使得针对 Wasm 的语言编译器能够与主机 VM 中的垃圾回收器集成。简单来说,通过 WasmGC,将编程语言移植到 Wasm 意味着编程语言的垃圾回收器不再需要成为移植的一部分,而是可以直接使用现有的垃圾回收器。
3

站心网
谷歌 Chrome 开发者博客官宣:Chrome 已默认启用 WebAssembly 垃圾回收 (WasmGC) 功能 —— 能够..
为您推荐
回首2018,展望2019
程序人生
2025年03月15日
今年这个春节,《流浪地球》大火,路人皆知,准确的说,连银河系都知道地球要跑路了,还顺带无情的抛弃了月亮。所以,太阳不高兴了,整个春节也没给我们什么好脸,甚至连脸都没露~人,有时候很感性。风和日丽的时候..

Chrome DevTools 中你可能不知道的 9 个调试技巧
前端开发
2025年03月15日
对于前端开发者来说,ChromeDevTools绝对是不可或缺的调试工具,我们常用的调试方法包含一些console等,而ChromeDevTools其实很强大,下面来聊聊一些你可能不知道的debug方法。Scroll Into View 滚动如视图内在Eleme..
移动互联网无处不在的今天,不同的学习方式让我们受益颇多。有人喜欢通过手机阅读各类技术专家的公众号分享;有人喜欢通过逛逛不同的博客,来了解当前时下的技术;也有人喜欢通过社区的形式,跟优秀的导师们一起梳理..
写给那些想要自学成才的java程序员
程序人生
2025年03月15日
自学java没那么难一:个人经历我的大学:第一年泡在图书馆看杂七杂八的书,跟学习毫无关系。第二年疯狂打LOL,从白银打到黄铜(黄铜守门员)。第三年上半年,被某人点醒,学习了整套C#知识体系,某马。下半年又决定..
跳槽!Java面试经验总结
编程语言
2025年03月15日
0.前言笔者在不足两年经验的时候从成都一家金融科技中厂跳槽到杭州阿里淘天集团,又于今年5月份从杭州淘天跳槽到成都字节。自认为自己在面试这方面有一点心得,处于记录和分享的目的便有了此文,此文纯主观,也许对3..
Java中String类常见的方法
编程语言
2025年03月15日
以下介绍字符串常见的几个方法。介绍String类在 Java 中,String类是一个代表字符串的类,具有以下特性:不可变性:String对象一旦被创建就是不可变的,即它们的值在创建后不能被更改。任何对String对象的修改操作实..

谷歌Chrome逐步移除 uBlock Origin 及相关扩展程序
资讯
2025年03月15日
最近,不少 Chrome 浏览器用户发现自己常用的广告拦截器 “uBlock Origin” 突然被自动禁用,页面上弹出一条醒目的 “不再受支持” 消息,这让许多习惯了使用该扩展程序屏蔽广告的用户感到措手..
2025年编程语言需求排行榜
程序笔记
2025年01月09日
随着技术的不断进步和市场需求的变化,2025年,哪些编程语言将成为企业的首选?在全球,由于技术短缺、人口变化以及对新技能的需求,编程语言的选择和需求也在迅速变化。本文将为您揭示未来最受企业青睐的编程语言,..
基于Dapper的开源Lambda扩展,且支持分库分表自动生成实体之基础
程序笔记
2025年01月08日
LnskyDB是基于Dapper的Lambda扩展,支持按时间分库分表,也可以自定义分库分表方法.而且可以T4生成实体类免去手写实体类的烦恼.文档地址:https://liningit.github.io/LnskyDB/开源地址:https://github.com/liningit/Ln..

鸿蒙系统HarmonyOS支持Docker吗?
程序笔记
2024年12月25日
华为鸿蒙系统(HarmonyOS)本身并不是直接为容器化设计的操作系统,因此在原生支持上并没有内置对 Docker 的直接支持。不过,可以通过以下方式实现某些 Docker 的功能:1. 鸿蒙系统的定位鸿蒙系统主要针对 IoT(物联..
多语言网站数据库文章表设计
程序笔记
2024年12月21日
设计一个支持多语言的网站数据库时,应该确保内容能够方便地扩展和管理。以下是多语言数据库表设计的关键原则和示例:设计原则分离内容与语言:将与语言相关的内容独立存储,不直接硬编码到主要表中。每个支持多语言..
SQLite性能支持多少数据量?
程序笔记
2024年11月22日
SQLite是一种轻量级的关系型数据库管理系统,广泛应用于移动应用、嵌入式系统和小型桌面应用程序中。由于其零配置、自给自足的特性,SQLite在很多场景下非常受欢迎。然而,对于许多开发者来说,一个常见的问题是:SQ..

Tesseractjs 前端OCR识别提取图像文本字符工具 支持 100+ 种语言
程序笔记
2024年11月20日
Tesseract.js 简介Tesseract.js 是一个基于 Tesseract OCR 引擎的开源 JavaScript 库,用于在浏览器和 Node.js 环境中执行光学字符识别 (OCR)。它的特点是无需依赖服务器端支持,完全在客户端执行 OCR 操作。Tessera..

.NET9 开始删除内置的 Swagger 支持 可使用Scalar.AspNetCore替代
程序笔记
2024年11月14日
Microsoft 已决定从 .NET 9 中删除内置的 Swagger 支持 (Swashbuckle)。为什么 Swagger (Swashbuckle) 被删除?ASP.NET Core 团队已决定从 .NET 9 中删除内置的 Swagger 支持 (Swashbuckle),原因如下:维护问..
HTQL 提取和查询HTML和XML数据的轻量级查询语言
程序笔记
2024年11月10日
HTQL(Hyper-Text Query Language)是一种用于提取和查询HTML和XML数据的轻量级查询语言。HTQL提供类似SQL的语法,可以方便地从网页或其他基于标签的文档中提取结构化数据,而无需解析整个文档。这使得它在爬虫、数..

鸿蒙OpenHarmony系统可以运行跨平台的.NET Core吗?
程序笔记
2024年11月05日
鸿蒙(HarmonyOS)和 OpenHarmony 系统本身并不原生支持直接运行 .NET Core,但可以通过一些方法使 .NET Core 应用在其上运行。鸿蒙和 OpenHarmony 是基于 LiteOS 和 Linux 内核的多终端操作系统,因此它们的运行时..
简单优雅的Java ORM
程序笔记
2024年10月30日
Java的ORM框架有很多,但由于Java语言的限制大部分都不够优雅也不够简单,所以作者只能另辟蹊径造轮子了。照旧先看示例代码了解个大概,然后再解释实现原理。一、ORM示例Insertpublic CompletableFuture<Void> inser..

轻量级 JavaScript 动画库 mo.js使用教程
程序笔记
2024年10月24日
mo.js 是一个强大的 JavaScript 动画库,专为在网页项目中创建复杂动画和运动图形而设计。它注重提供平滑、动态的动画效果,并通过简单、模块化和灵活的组件让开发更加便捷。mo.js官网地址:https://mojs.github.io/..
.NET 9 即将推出的功能Task.WhenEach
程序笔记
2024年10月23日
.NET 爱好者!我刚刚偶然发现了一个非常酷的新 PR,它被合并到 .NET 运行时存储库中,我想分享一个例子。希望您能为新的 .NET 版本大肆宣传!在即将到来的 .NET 9 版本中,我们预计会有一个名为 .它在这里让您的异步..

针对 Go 语言开发的 SQL 驱动模拟库
程序笔记
2024年10月23日
数据库交互是几乎所有应用程序不可或缺的一部分,开发者们常常需要对数据库进行各种操作,包括插入、更新、删除和查询等。然而,在开发过程中直接对真实数据库进行操作不仅耗时耗力,还可能带来数据一致性和安全性的..