这一系列的文章翻译自:https://v8.dev/docs
这是这一系列文档翻译的第一篇,之后会陆续翻译所有的文档,取决于个人的空余时间。
文档
V8是google开源的高性能JavaScript和WebAssembly引擎,使用c++编写。它被用于chrome和node.js,以及其他的浏览器。
这篇文档的目标读者是希望再他们的应用程序中使用V8引擎的C++开发者,以及其他对V8引擎的设计和性能感兴趣的人。这篇文档向你介绍了V8,该系列剩余的其他文档将会向你展示如何再你的代码中使用V8,同时会描述一些V8引擎的设计细节,以及提供了关于测试V8引擎性能的一系列JavaScript基准。
关于V8
V8实现了ECMAScript以及WebAssembly,可以运行在Window 7或者更高,MacOS 10.12+,以及使用x84,IA-32,ARM,或者MIPS处理器的Linux系统。V8可以单独启动,也可以嵌入到其他任何C++程序中。
V8编译和执行JavaScript源代码,处理对于对象的内存分配,以及当对象不再需要时的垃圾收集。精确的垃圾收集器时V8性能的关键之一。
JavaScript在浏览器的脚本编程中被广泛使用,例如用于操作DOM。DOM一般不是由JavaScript引擎提供的,而是由浏览器来实现的。在V8中也是这样,Google Chrome提供了DOM。然而,V8确实提供了所有ECMA标准定义的数据类型,操作符,对象和函数。
V8使得任何C++程序可以暴露它们自己的对象和函数与给JavaScript代码。由你来决定你想要将哪些对象和函数暴露给JavaScript。
文档概览
- 从源代码构建V8
- Contributing
- V8’s public API and its stability
- Becoming a V8 committer
- Committer’s responsibility
- Blink web tests (a.k.a. layout tests)
- Evaluating code coverage
- Release process
- Implementing and shipping JavaScript/WebAssembly language features
- Flake bisect
- Handling of ports
- Merging & patching
- Node.js integration build
- New Node.js integration build
- Reporting security bugs
- Running benchmarks locally
- Testing
- Triaging issues
- Debugging
ARM debugging with the simulator
Cross-compiling and debugging for ARM/Android
Debugging builtins with GDB
Debugging over the V8 Inspector Protocol
GDB JIT Compilation Interface integration
Investigating memory leaks
Stack trace API
Using D8 - Embedding V8
Guide to embedding V8
Version numbers
Built-in functions
i18n support
Untrusted code mitigations - Under the hood
Ignition
TurboFan
Torque user manual
Writing Torque built-ins
Writing CSA built-ins - Writing optimizable JavaScript
Using V8’s sample-based profiler
Profiling Chromium with V8
Using Linux perf with V8
Tracing V8