# 0x 中文文档

规范地址：https://npmcn.com/package/0x/

版本：6\.0\.0
npm 元数据更新时间：2025-07-07T09:18:53.074Z
中文译文更新时间：2026-11-05T17:30:28.266Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/0x
原文对照：https://npmcn.com/package/0x/?lang=original
项目主页：https://github.com/davidmarkclements/0x#readme
源码仓库：https://github.com/davidmarkclements/0x

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：102 kB，45 个文件
- 模块格式：CommonJS
- TypeScript 类型：未声明
- Node.js 要求：\>=8\.5\.0
- 运行依赖：28 个
- 首次发布：2016-02-14T16:10:18.507Z
- 最新版本发布：2025-07-07T09:18:52.896Z
- 近 30 天下载量：301783（2026-10-04 至 2026-11-02，npm 官方下载统计）
- 已发布版本数：125（近 12 个月 0 个）

## 中文简介

单指令的火焰图剖析

## 安装

```sh
npm install 0x
```

也可以使用：`pnpm add 0x`、`yarn add 0x`、`bun add 0x`

## README

# 0个

![0x](https://npmcn.com/package/0x/assets/0x-logo.png)

单指令的火焰图剖析

发现密码中的瓶颈和热路,用火焰图.

## 可视化堆栈跟踪

`0x` 可配置和生成一个具有单一命令的节点进程的交互式火焰图, 在任何节点运行的平台上(macOs, Linux, Windows, Android...).

## 支助

-   节点v20.x及以上
-   默认使用支持节点运行的任何操作系统 !
-   颜色
    -   其他浏览器可能打开已退化但功能形式的火焰图

## 安装

```sh
npm install -g 0x
```

## 使用量

使用 `0x` 运行脚本 :

```sh
0x my-app.js
```

立即打开浏览器中的火焰图 :

```sh
0x -o my-app.js
```

自动针对第一个配置命令执行 通过配置进程打开的端口 :

```sh
0x -P 'autocannon localhost:$PORT' my-app.js
```

使用自定义节点可执行文件 :

```sh
0x -- /path/to/node my-app.js
```

将自定义参数传递到节点 :

```sh
0x -- node --zero-fill-buffers my-app.js
```

> 用于 pwsh 用户, 初切换到 CMD 或用 `npx`

```
npx 0x -o my-app.js
```

## 正在生成

准备生成火焰图时,发送SIGINT或SIGTERM.

最简单的方法是按下 CTRL+C.

何时 `0x` 它处理堆栈和 生成配置文件夹( e)`<pid>.0x`),包含 `flamegraph.html`。 。 。 .

## 乌干达

这个 `flamegraph.html` 文件包含 0x 用户界面,其解释如下: [文献/文献](https://npmcn.com/package/0x/docs/ui.md)。 。 。 .

## 生产服务器

轻量级、生产服务器友好型、生成 火焰图描述于 [文件/生产服务器](https://npmcn.com/package/0x/docs/production-servers.md)。 。 。 .

## 配置文件夹

默认情况下,将创建一个配置文件夹,并以 PID 命名,例如. `3866.0x` (我们可以使用 `--output-dir` 旗帜).

Profile 文件夹将在 [文件/档案文件夹](https://npmcn.com/package/0x/docs/profile-folder.md)

## 示例

切开这个回放,运行 `npm i -g` 从还原根运行

```sh
0x examples/rest-api
```

在另一个标签运行中

```sh
npm run stress-rest-example
```

在服务器上加载,一旦完成 使用 ctrl + c 来杀死服务器.

## 命令行 API

### 帮助 qq-h

打印使用信息.

### 打开..

在浏览器中打开火焰图 `open` 或者说 `xdg-open` (见 [https://www.npmjs.com/package/open (中文(简体) )](https://www.npmjs.com/package/open) 详细情况请查阅.

### \-在港口上 - -P

运行给定的命令并生成火焰图 . 指定的命令可访问 a `$PORT` 变量. 这个 `$PORT` 变量是按照第一个端口设置的 配置进程打开 .

例如,这里有一个使用 [自定义](http://npm.im/autocannon) 以加载测试进程 :

```sh
0x -P 'autocannon localhost:$PORT' app.js
```

当负载测试完成后,处理的配置文件将 发送了 SIGINT , 火焰图将自动生成 .

记住要用单引号来避免被戳入, 或者其他的逃生变量(例如:. `0x -P "autocannon localhost:$PORT" app.js` 没用的 `0x -P "autocannon localhost:\$PORT" app.js` 页:1.

注意: 在 Windows 插值上通常发生 `%PORT%`不过 在这种情况下,美元前缀 `$PORT` 是正确的语法 (因为内插不是基于外壳).

默认 : ''

### 名称

HTML 文件的名称, 没有. html 扩展名 能够设置为 - 将 HTML 写入 STDOUT( 注) 由于CLI 参数解析的性质,必须使用 `=`, (中文(简体) ), 譬如说. `--name=-`) (中文(简体) ).

如果这面旗帜或者 `--output-html-file` 设置为 `-` 然后 HTML 将转到 STDOUT.

默认: 火焰图

### 标题

设置要显示在 Flashgraph UI 中的标题 .

默认: 0x 运行启动进程的命令

### \-- 输出- dir QQ- D

指定文物输出目录。 可在模板中指定 可能变量的窗体 `{pid}`, (中文(简体) ), `{timestamp}`, (中文(简体) ), `{name}` (基于 `--name` 旗帜)和 `{outputDir}`(可变数) 必须在没有空白的情况下指定,例如. `{ pid }` 不被支持.

默认 : `{pid}.0x`

### \--output-html QQ-F 数据输入

指定生成的 Flashgraph HTML 文件的去向. 可用可能变量的模板形式指定 状态 `{pid}`, (中文(简体) ), `{timestamp}`, (中文(简体) ), `{name}` (基于 `--name` 旗帜)和 `{outputDir}` (可变性必须指定,不设空格, 譬如说. `{ pid }` 不被支持。 也可以设定为 `-` 改为 将 HTML 输出发送到 STDOUT (注) 由于CLI 参数解析的性质,必须使用 `=`, (中文(简体) ), 譬如说. `--output-html=-`) (中文(简体) ).

如果这面旗帜或者 `--name` 设置为 `-` 然后 HTML 将转到 STDOUT.

默认 : `{outputDir}/{name}.html`

### \--内核追踪

使用OS内核跟踪工具(perf on Linux). 这个能捕捉到 本地堆栈框架(C++模块和Libuv I/O), 但是由于编译器优化,可能导致从Node.js中缺少堆栈.

见 [文件/内核追踪](https://npmcn.com/package/0x/docs/kernel-tracing.md) 更多信息.

默认: 假

### \- 安静..

限制输出, 唯一的输出将是致命错误或 路径 `flamegraph.html` 以成功的一代盟誓.

默认: 假

### 安静 安静

除致命错误外, 禁止所有输出 .

默认: 假

### 仅收集

不要生成火焰图, 只创建配置文件夹, 包括相关产出.

默认: 假

### \-- 收起- 延迟

相对于第一个条目,将堆栈的收集延迟到指定的时间(ms) .

默认: 0

### \-- 只可视化

提供用于构建或重建可视化的配置文件夹路径 从原始堆栈.

默认: 未定义

### ——可视化-可视化

提供 CPU 配置文件的路径(`.cpuprofile`) (中文(简体) ). 见 `examples/cpu-profile` 用于实例.

[CPU 配置文件](https://developers.google.com/web/tools/chrome-devtools/rendering-tools/js-execution) 输出没有那么多信息,但可以从浏览器中的Chrome Devtools中导出. 也有一个自动化的无头工具来做到这一点: [自动染色图示](https://github.com/paulirish/automated-chrome-profiling)。关于在节点创建节点.js Cpu 配置文件,参见 [v8 显示器](https://github.com/node-inspector/v8-profiler) 或者说 [v8 显示器 - next](https://github.com/hyj1991/v8-profiler-next)。它们也可以使用命令行旗从12号及以上节点生成 [`--cpu-prof`](https://github.com/nodejs/node/commit/e0e308448240260c207958dfc3dd9245d903af85)。 。 。 .

默认: 未定义

### \--内核跟踪调试

显示 perf(1) 工具的输出 .

默认: 假

### \-- 树木调试

将捕获到的微量输出的中间树代表保存到 JSON 文档.

默认: 假

## 程序化 API

0x也可以作为节点模块要求并被脚本:

```js
const zeroEks = require('0x')
const path = require('path')

async function capture () {
  const opts = {
    argv: [path.join(__dirname, 'my-app.js'), '--my-flag', '"value for my flag"'],
    workingDir: __dirname
  }
  try {
    const file = await zeroEks(opts)
    console.log(`flamegraph in ${file}`)
  } catch (e) {
    console.error(e)
  }
}

capture()

```

程序化的API详见: [文件/附录](https://npmcn.com/package/0x/docs/api.md)。 。 。 .

## 解决问题

### 记忆问题

有很多堆叠的非常复杂的应用可能会触及内存问题.

这个 `--stack-size` 旗帜可以用来设置内存到最大 8GB 为了在剖析时围绕这一点开展工作:

```
node --stack-size=8024 $(which 0x) my-app.js
```

在克罗姆还是有问题打开火焰图 同样的工作 从命令行( 平台依赖) 打开 Chrome 即可使用 并筑巢 `--stack-size` 旗帜 `--js-flags` 旗帜 : `--js-flags="--stack-size 8024"`。 。 。 .

## 调试

`DEBUG=0x* 0x my-app.js`

## 替代品

-   [https://github.com/brendangregg/FlameGraph 页面存档备份,存于互联网档案馆](https://github.com/brendangregg/FlameGraph) (佩尔)
-   [https://www.npmjs.com/package/stackvis 页面存档备份,存于互联网档案馆](https://www.npmjs.com/package/stackvis) (节点)
-   [https://www.npmjs.com/package/d3-flame-graph (英语)](https://www.npmjs.com/package/d3-flame-graph) (节点)

## 鸣谢

本作最初的赞助商是: [临近格式](http://nearform.com/)

此工具来自各种信息和代码来源 并且会花费更长的时间 没有以下的人和 其开放源码/信息分享工作:

-   托尔斯滕·洛伦兹(英语:[http://thlorenz.com/ (原始内容存档于2018-09-29)](http://thlorenz.com/)(中文(简体) )
-   戴夫·帕切科(英语:[http://dtrace.org/blogs/dap/about/ (中文(简体) )](http://dtrace.org/blogs/dap/about/)(中文(简体) )
-   布兰登·格雷格(英语:[http://www.brendangregg.com/ (中文(中国大陆) )](http://www.brendangregg.com/)(中文(简体) )
-   马丁·斯皮尔(Martin Spier)[http://martinspier.io/ (中文(简体) )](http://martinspier.io/)(中文(简体) )

## 许可证

麻省理工学院

## 常见问题

### 0x 是什么？

单指令的火焰图剖析

### 如何安装 0x？

在项目目录运行 npm install 0x，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 0x，可以用 npx 0x 直接运行。

### 0x 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/0x 是否存在。

### 0x 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### 0x 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=8\.5\.0。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### 0x 可以商用吗？

0x 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### 0x 的下载量有多少？

根据 npm 官方下载统计，0x 在 2026/10/04 – 2026/11/02 这 30 天内被下载 301,783 次，日均约 10,059 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### 0x 还在维护吗？

最新版本 6\.0\.0 发布于 2025/07/07（1\.3 年前）；至今共发布 125 个版本，其中过去 12 个月发布了 0 个；首次发布于 2016/02/15。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

