写点什么

Deno 1.5 使用新编译器,打包性能提升 3 倍

2021 年 1 月 19 日

Deno 1.5使用新编译器,打包性能提升3倍

为 JavaScript 和 TypeScript 开发 Deno 运行时的团队最近发布了 Deno 1.5。新版本通过使用基于 Rust 的 JavaScript/TypeScript 编译器swc来提高打包性能,并通过摇树优化进一步减少包的大小。Deno 1.5 实现了 alert、confirm 和 prompt 等 Web 平台 API,开发人员可以在终端编写简单的交互式应用程序。


Deno 团队重构了 Deno 的 TypeScript 编译器基础架构,开始使用 swc。swc 是用 Rust 编写的 JavaScript/TypeScript 编译器和打包器。swc 声称单线程速度比 Babel 快 20 倍,在一次四核基准测试中快 70 倍。Deno 1.5 的发布说明提到了 swc 对 Deno 编译性能的影响:


当我们启用类型检查时,性能提升了 3 倍,如果开启--no-check 选项,则提升 15 倍。


新的摇树优化能力进一步降低包的大小。发布说明给出了一个源码示例,在使用 v1.5 而不是 v1.4 进行编译时,代码大小减少了 35%。


Deno 1.5 打好的包可以作为标准的 ES 模块发布。发布说明写道:


动态导入现在可以正常工作,import.meta.url 也可以正确设置。如果你使用 Deno 为浏览器打包代码,请确保将包作为 ES 模块加载(在<script>标签加上 type="module")。


新版本的 Deno 实现了 alert、confirm 和 prompt 等 Web 平台 API,语义与浏览器中的 API 类似。例如,在浏览器中,window.prompt 将显示一个带有可选消息的对话框,提示用户输入一些文本。在 Deno 终端中,prompt 函数同样会提示用户,并同步阻塞,直到接收到输入。


上述的 API 允许开发人员在终端中实现简单的交互。发布说明提供了一个简单的例子



在 Node.js 中,要提示用户输入,可能需要开发人员直接操作I/O流(例如 process.stdin)或通过库来操作。


新版本 Deno 还为 REPL 添加了一些新特性。在 REPL 中,对象属性和方法可以通过按 TAB 键来自动完成。如果终端支持颜色,还可以高亮显示代码语法。REPL 现在还支持顶级await指令


发布说明还介绍了其他一起发布的次要特性。有兴趣的开发人员可以在网上查看发布说明


Deno 采用了 MIT 开源软件。开发者可以通过Deno项目参与贡献,并遵循Deno贡献指南


原文链接


Deno 1.5 Sees 3x Bundling Performance Improvement Due to Rust-Based JavaScript/TypeScript Compiler

2021 年 1 月 19 日 13:561

评论

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

Tensorflow2.0安装使用

MySQL从删库到跑路

人工智能 tensorflow Anaconda Jupyter Notebook

正则表达式知识总结

iHTC

正则表达式

UBBF2020:智能联接,共创行业价值新增长

DT极客

Python 疑难问题:[] 与 list() 哪个快?为什么快?快多少呢?

Python猫

Python 学习 编程 程序员

技术心得丨一种有效攻击BERT等模型的方法

华为云开发者社区

学习 AI

远程触发Jenkins的Pipeline任务的并发问题处理

小Q

Java 学习 编程 架构 并发

打通Docker镜像发布容器运行流程

架构师修行之路

Docker 容器 分布式 微服务

后疫情时代,华为云会议如何定义未来会议?

华为云开发者社区

视频 会议

分配时间戳和生成水位线

小知识点

scala 大数据 flink

JVM系列笔记 - 寄存器

朱华

JVM

容器技术为什么会这么流行

架构师修行之路

Docker 分布式 微服务 容器化

OpenResty 项目脚手架

小铁匠

lua nginx openresty

优秀开源项目、博客、书籍整理

小铁匠

收藏教程 资源汇总

区块链需与5G等技术打好“组合拳”

CECBC区块链专委会

区块链 5G

Apple Developer 开发者账号申请&实名认证【2020】

iHTC

Apple Developer iOS Developer 苹果实名认证

Anaconda安装使用和akshare库使用

MySQL从删库到跑路

Python 数据分析 Windows 10 Anaconda akshare

华为丁耘,解读百尺竿头的中国5G

脑极体

甲方日常 30

句子

工作 随笔杂谈 日常 心情

「红黑树」背了又忘?深入本质,他也不过是一棵二叉树

小松漫步

技术解读丨分布式缓存数据库Redis大KEY问题定位及优化建议

华为云开发者社区

云计算 华为 技术

华为云专家带你解读文本情感分析任务

华为云开发者社区

内容 数据 分析

图解 K8S 源码 - QoS 篇

郭旭东

Kubernetes Kubernetes源码

推荐一款MySQL开源客户端,免费+跨平台+使用便捷!

王磊

MySQL

netfilter/iptables 原理

为为

Service Mesh Linux Kenel

极客时间架构师培训 1 期 - 第 4 周总结

Kaven

【BAT面试通关手册】覆盖Java相关29个技能,学完之后吊打面试官!

Java成神之路

Java 阿里巴巴 程序员 面试 编程语言

Underlay网络:如何立住可靠又支持大规模无收敛的“人设”

华为云开发者社区

云服务 交换机

CECBC区块链专委会副主任吴桐主讲全国社保基金数字货币讲座

CECBC区块链专委会

区块链 数字货币

融合与共生之下,区块链都能“+”什么?

CECBC区块链专委会

区块链 大数据

腾讯技术官又曝神作,两份堪称‘千古绝唱’操作系统笔记现已被全网疯传

云流

编程 操作系统 计算机

Kubeless 函数部署遇到了问题,如何 Debug? | 玩转 Kubeless

donghui2020

Serverless kubeless

NLP领域的2020年大事记及2021展望

NLP领域的2020年大事记及2021展望

Deno 1.5使用新编译器,打包性能提升3倍-InfoQ