网易首页 > 网易号 > 正文 申请入驻

TypeScript 终于能编译成原生程序了?启动快 12 倍,运行却慢 7.5 倍

0
分享至


作者 | Daniel Curtis

译者 | 田橙

Vercel Labs 发布了 scriptc。这是一款采用 Apache 2.0 许可证的实验性编译器,可以将普通 TypeScript 转换为小型原生可执行文件,生成的二进制文件中不包含 Node、V8 或任何 JavaScript 引擎。

该代码仓库创建于 2026 年 7 月 22 日,目前已获得约 4900 个 Star。scriptc 使用真正的 TypeScript 编译器进行解析和类型检查,将程序转换为类型化中间表示,随后可以生成可读的 C 代码、LLVM IR、汇编代码、目标文件、原生可执行文件,或者通过 WASI Preview 1 生成 WebAssembly。

每一种语法结构 都会被划入三个层级之一:默认进行静态编译;对于 npm 软件包和any类型代码,在传入--dynamic参数时,由一个约 620KB 的内嵌 quickjs-ng 引擎动态执行;或者在编译时被拒绝,同时返回一个 SC 错误码和改写建议。

一项将 scriptc 0.0.16 与 Bun 1.3.12、Node 24.18.0 进行对比的基准测试 显示,scriptc 命令行工具的启动时间中位数为 1.78 毫秒,而 Bun 和 Node 分别为 21.29 毫秒和 61.78 毫秒。一个不使用任何框架的node:http服务器在空闲时仅占用 1.9MiB 内存。同一组测试发现,Hono 必须启用--dynamic,导致服务器中 62% 的代码进入 QuickJS,吞吐量也降至每秒 1.84 万个请求,而 Bun 可以达到每秒 7.05 万个请求。

在 Hacker News 上,一名开发者 报告 称,其测试结果显示 scriptc 的运行速度约比 Node 24 慢 7.5 倍:

从字节数组的结果来看,也就是最理想的情况,scriptc 仍然比 Node 24 慢约 7.5 倍,即使 Claude 已经尝试进行一些针对 scriptc 的优化。不过,它的可执行文件启动速度快了 12 倍(1.5 毫秒对 18.6 毫秒),内存占用低了 72 倍(2.5MiB 对 181MiB),而且最终得到的是一个没有任何运行时依赖、大小仅为 370KB 的单一可执行文件。

Filip Pizlo 认为,将所有数字都表示为浮点数,并暂缓实现整数类型推断,相当于跳过了“让 JavaScript 跑得快这一问题的一半”。他还指出,对于一个以性能为目标的项目来说,依赖 QuickJS 并不合适,因为any足够常见,实际程序中的代码会不断落入这个动态执行孤岛。

Simon Willison 指出,编码智能体在短短一周内就提交了 91.8 万行代码。他还 补充道,无需编写 C 或 Rust 就能构建小巧、快速的二进制文件,“似乎是一项很有价值的能力”。

一名开发者 发现,在其本地的每个项目上进行兼容性覆盖检查时,都会产生数百个错误:

尽管它受到了很多批评,我还是觉得至少应该测试一下,于是用本地所有项目都试了一遍。每一个项目的覆盖检查都会产生数百个错误,所以它基本毫无用处。我明白,我可以从头编写一个项目,不使用任何第三方库,然后把它编译成二进制文件;但既然如此,我为什么不用 Rust、Go、Zig、D、C、V、Ada、C++、Nim、Swift、Kotlin Native、Haskell……或者任何一种本来就是为编译而设计,并且能很好完成编译的语言?

另一个反复出现的担忧是项目能否长期维护。评论者 提到 了 Vercel 的 zerolang,该项目发布数周后便不再有新的代码提交。Remo Jansen 曾尝试 编译 TypeScript 6 编译器本身,但最终因编译器内部错误而失败。不过,他测得 scriptc 的冷启动时间为 3.6 毫秒,而 Node 为 48.9 毫秒;但在计算任务中,scriptc 的耗时则慢得多,达到 2.33 秒。

该编译器需要 Node.js 24 或更高版本,可以通过npm install -g scriptc安装。限制说明页面 记录了一些有意为之的行为差异,使用前值得仔细阅读:字符串以 UTF-8 格式存储;内存使用引用计数而非垃圾回收;Object.keys按声明顺序返回键;process.argv[0]的值为"scriptc"。npm 依赖指南 介绍了依赖项的处理方式,其中包括实验性的--npm-static参数,可以将指定软件包从动态执行孤岛中移出并进行静态编译。

scriptc 支持 macOS、Linux、Windows 和 WASI Preview 1,并通过差分测试保证行为一致:测试会逐字节比较其与 Node 的标准输出、标准错误和退出码。该项目目前仍被明确标记为实验性项目,相关文档可在 scriptc.dev 查看。

https://www.infoq.com/news/2026/09/vercel-scriptc-node/

声明:本文为 InfoQ 翻译,未经许可禁止转载。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
为什么普通人不建议去上老年大学?我去上了一学期课,发现里面是个小江湖

为什么普通人不建议去上老年大学?我去上了一学期课,发现里面是个小江湖

小马达情感故事
2026-10-18 17:45:42
广东给200万他不走,南京给150万他乐开花,杜润旺这笔买卖谁赢了

广东给200万他不走,南京给150万他乐开花,杜润旺这笔买卖谁赢了

江启
2026-10-22 05:12:37
国王成冤大头!一场没打白扔350万,24投12分,选的基石也看走眼

国王成冤大头!一场没打白扔350万,24投12分,选的基石也看走眼

你的篮球频道
2026-10-23 10:01:22
哈啰回应车主称订单含招嫖暗语:已封禁账号 后续固定线索移交主管部门

哈啰回应车主称订单含招嫖暗语:已封禁账号 后续固定线索移交主管部门

快科技
2026-10-22 15:49:15
“黄金腰臀比”魏秋月:运动员时因技术出名,退役后靠身材出圈

“黄金腰臀比”魏秋月:运动员时因技术出名,退役后靠身材出圈

洒脱一点p
2026-10-22 03:20:16
正式官宣!中国女足主帅卸任,原因揭晓,球迷呼吁,最大热门浮出

正式官宣!中国女足主帅卸任,原因揭晓,球迷呼吁,最大热门浮出

大秦壁虎白话体育
2026-10-23 11:07:55
单局0:11耻辱收场!张本智和被打跪了,教练队友丢下他快速离场

单局0:11耻辱收场!张本智和被打跪了,教练队友丢下他快速离场

史行途
2026-10-23 11:29:11
杨幂从头美到脚丫子

杨幂从头美到脚丫子

喜欢历史的阿繁
2026-10-23 06:37:59
埃迪豪成曼联下任主帅第一热门!孔蒂谈判受阻,拉爵不满其两要求

埃迪豪成曼联下任主帅第一热门!孔蒂谈判受阻,拉爵不满其两要求

罗米的曼联博客
2026-10-23 10:01:53
于文红男友委屈发声:5月后她不再给我买衣服,所以她不是金主!

于文红男友委屈发声:5月后她不再给我买衣服,所以她不是金主!

手工制作阿歼
2026-10-22 01:46:46
2000万打工人的噩梦!两会代表提议废除劳务派遣,能实现吗?

2000万打工人的噩梦!两会代表提议废除劳务派遣,能实现吗?

白米饭怎么吃
2026-10-22 22:10:49
智取遵义城:红军缴获王家烈家底,12天分粮、招兵、赶新军装,走之前还开了三天会

智取遵义城:红军缴获王家烈家底,12天分粮、招兵、赶新军装,走之前还开了三天会

磊子讲史
2026-10-22 19:09:06
章子怡命可真的苦
如果当年嫁给撒贝宁,结局就会不同

章子怡命可真的苦 如果当年嫁给撒贝宁,结局就会不同

小琦聊生活
2026-09-26 12:33:26
赖昌星最狠的一招,就是用天价豢养空姐周兵,攻破了海关关长的防线;私生子降生的那一刻,530亿走私帝国的遮羞布被彻底撕碎

赖昌星最狠的一招,就是用天价豢养空姐周兵,攻破了海关关长的防线;私生子降生的那一刻,530亿走私帝国的遮羞布被彻底撕碎

人生录
2026-10-20 00:05:11
越南网友拿出古地图,想证明西沙南沙属于越南,结果证明越南古代属于中国

越南网友拿出古地图,想证明西沙南沙属于越南,结果证明越南古代属于中国

世界纵横说
2026-09-21 11:36:25
湖南大山里发现一株饭碗粗的野生柘树,全身是刺,却是古代的“帝王木”,可惜多数人不认识

湖南大山里发现一株饭碗粗的野生柘树,全身是刺,却是古代的“帝王木”,可惜多数人不认识

农夫也疯狂
2026-10-22 16:27:11
于东来也没想到,同样开公司的张雪,竟因一个“橘子”,口碑暴增

于东来也没想到,同样开公司的张雪,竟因一个“橘子”,口碑暴增

晓踏就是我
2026-10-23 05:27:20
马克龙十年,法国为何越改越撕裂

马克龙十年,法国为何越改越撕裂

中国青年报
2026-10-21 06:58:11
炸裂首秀!你好,浓眉哥!再次点燃NBA交易市场

炸裂首秀!你好,浓眉哥!再次点燃NBA交易市场

篮球实战宝典
2026-10-22 22:00:43
薪水乘以十也不高!老詹15+9+6,连赢两支东决球队,高居东部第一

薪水乘以十也不高!老詹15+9+6,连赢两支东决球队,高居东部第一

无术不学
2026-10-23 11:34:18
2026-10-23 13:27:00
InfoQ incentive-icons
InfoQ
有内容的技术社区媒体
13106文章数 52118关注度
往期回顾 全部

科技要闻

抢运营商饭碗!马斯克又有大动作

头条要闻

特朗普儿子前女友被解雇 曾鼓励助理和有钱男人上床

头条要闻

特朗普儿子前女友被解雇 曾鼓励助理和有钱男人上床

体育要闻

没人看好的加图索,打出队史最佳开局

娱乐要闻

高梓淇向女友求婚,被女方父母接受

财经要闻

娃哈哈集团董事长许思敏离职

汽车要闻

泊车有绝学 新手亦高手 全新第四代博越L泊车篇

态度原创

亲子
教育
时尚
游戏
数码

亲子要闻

总跟孩子讲道理,是最低效的幼儿教育方式

教育要闻

日常英语:厨房的味道也会影响别人

“风衣+裙子”才是今年秋天绝美搭配,这样搭显瘦还时髦

《赛博朋克》11.10登战网 边缘行者2同步免费更新

数码要闻

入门卡溢价超60%!RTX 50系价格彻底崩坏:5050、5060 Ti仅差500元

无障碍浏览 进入关怀版