这是我参与2022首次更文挑战的第20天,活动详情查看:2022第一次更文挑战
一、 高性能脚本工具
关于 JavaScript 的一个常见批评是运行速度慢,不适合要求很高的计算。无论这里所说的“慢”是 否符合实际,毋庸置疑的是这门语言从一开始就没有考虑支持敏捷的计算。为解决性能问题,有很多项 目致力于改造浏览器执行代码的方式,以便让 JavaScript 代码的速度可以接近原生代码速度,同时利用 硬件优化。
1.1 WebAssembly
WebAssembly 项目(简称 Wasm)正在实现一门语言,该语言可以在多处执行(可移植)并以二进 制语言形式存在,可以作为多种低级语言(如 C++和 Rust)的编译目标。WebAssembly 代码在浏览器的一个与 JavaScript完全独立的虚拟机中运行,与各种浏览器 API交互的能力极为有限。它可以与 JavaScript和 DOM 以间接、受限的方式交互,但其更大的目标是创造一门可以在 Web 浏览器中(以及在任何地方)运行的速度极快的语言,并提供接近原生的性能和硬件加速。WebAssembly 系列规范在 2019 年 12 月 5日已成为 W3C 的正式推荐标准,是浏览器技术中非常值得期待的领域。
1.2 asm.js
asm.js 的理论基础是 JavaScript 编译后比硬编码 JavaScript 运行得更快。asm.js 是 JavaScript 的子集,可以作为低级语言的编译目标,并在常规浏览器或 Node.js 引擎中执行。现代 JavaScript 引擎在运行时推断类型,而 asm.js 代码通过使用词法提示将这些类型推断(及其相关操作)的计算大大降低。asm.js 广泛使用了定型数组(TypedArray),相比常规的 JavaScript 数组能够显著提升性能。asm.js 没有WebAssembly 快,但通过编译显著提升了性能。
1.3 Emscripten 与 LLVM
虽然 Emscripten 从未在浏览器中执行,但它是重要的工具包,可以将低级代码编译为 WebAssembly 和 asm.js。Emscripten 使用 LLVM 编译器将 C、C++和 Rust 代码编译为可以直接在浏览器中运行的代码(asm.js),或者可以在浏览器虚拟机中执行的代码(WebAssembly)。
二、 编辑器
VIM、Emacs 及其同类的文本编辑器非常优秀,但随着构建环境和项目规模逐渐复杂,编辑器最好 能够自动化常见任务,如代码自动完成、文件自动格式化、自动检查代码错误、自动补足项目目录。目 前有很多编辑器和 IDE 支持这些功能,既有免费的也有收费的。
2.1 Sublime Text
Sublime Text 是比较流行的闭源文本编辑器。它可用于开发各种语言,还提供了大量可扩展的插件, 由社区来维护。Sublime Text 的性能非常突出
2.2 Atom
Atom 是 GitHub 的开源编辑器,与 Sublime Text 有很多相同的特性,如社区在蓬勃发展且拥有第三 方扩展包。Atom 的性能稍差,但它在不断地提升。
2.3 Brackets
Brackets 是 Adobe 的开源编辑器,与 Atom 类似。但 Brackets 是专门为 Web 开发者设计的,提供了 许多非常令人印象深刻的、面向前端编码的独特功能。该编辑器还有丰富的插件。
1.4 Visual Studio Code
微软的 Visual Studio Code 是基于 Electron 框架的开源代码编辑器。与其他主流编辑器一样,Visual Studio Code 是高度可扩展的。
1.5 WebStorm
WebStorm 是 JetBrains 的高性能 IDE,号称终极项目开发工具包,集成了前沿的前端框架,也集成 了大多数构建工具和版本控制系统
总结:
本期我们分享的是JavaScript(二十)的高性能脚本工具
我们下期:继续分享JavaScript的构建工具、自动化系统和任务运行器
原创不易,期待您的点赞关注与转发评论😜😜