# @benchsdk/runner 中文文档

规范地址：https://npmcn.com/package/%40benchsdk/runner/

版本：0\.8\.1
npm 元数据更新时间：2026-11-04T00:33:55.312Z
中文译文更新时间：2026-11-07T22:02:01.235Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40benchsdk/runner
原文对照：https://npmcn.com/package/%40benchsdk/runner/?lang=original
项目主页：https://www.computesdk.com/
源码仓库：https://github.com/computesdk/benchmarks

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

- 包体积（解压后）：626 kB，13 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=18\.0\.0
- 运行依赖：3 个
- 首次发布：2026-08-17T20:44:35.359Z
- 最新版本发布：2026-11-04T00:33:54.912Z
- 近 30 天下载量：7896（2026-10-08 至 2026-11-06，npm 官方下载统计）
- 已发布版本数：12（近 12 个月 12 个）

## 中文简介

基准框架:任务+步骤+配置原始人和驱动@benchsdk/worker的本地管弦乐器

## 安装

```sh
npm install @benchsdk/runner
```

也可以使用：`pnpm add @benchsdk/runner`、`yarn add @benchsdk/runner`、`bun add @benchsdk/runner`

## README

# @ benchsdk/ runner (韩语)

作者基准框架 `*.bench.ts` 文档和运行基准工作者。 它通过下列途径向基准平台报告: `@benchsdk/api`· ; [`@benchsdk/client`](https://npmcn.com/package/%40benchsdk/benchsdk) 是一种倒向相容性再出口shim.

## 它提供的东西

-   **`defineBenchmarkConfig`** 编号 : **`defineTask`** A级 `*.bench.ts` 文件导出完全有两点: a **配置** (单位:千美元)`defineBenchmarkConfig`键+ `participants` + 可选 `onComplete` 钩子)和 a **任务** (单位:千美元)`defineTask`重复一次的工作量。 没有"模":从"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出"出 `iterations`, (中文(简体) ), `concurrency`,以及 `staggerDelayMs` 把手,和 `groupBy` (单位:千美元)`'participant'` | `'round'`)选择整个参与者的订单.
-   **`bench run <file>`** ——CLI入站点. 它输入模块,读取它的 `config` 财务报告和审定财务报表 `task`,应用 CLI 覆盖,并驱动运行。 基准文件声明;他们从不给跑者打电话.
-   **`bench check <file>`** ——验证环境变量,API连通性,参与者可用性,运行前评分权重.
-   **`runBenchmarkWorker(options)`** ——一发接线员辅助操作员,操作单一参与者的工人而无 `*.bench.ts` 文档.
-   **`TaskError`** 编号 : **`NoAvailableParticipantsError`** - 结构错误:抛出 `TaskError` 从附加代码/数据/预计量步骤的任务; `bench run` 治疗 `NoAvailableParticipantsError` (每个参与者都潜出) 作为一个干净的不开放出口.

## 安装

```sh
pnpm add @benchsdk/runner @benchsdk/client
```

## 使用量

基准文件导出a `config` (单位:千美元) `task` - 没有别的了:

```ts
import { defineBenchmarkConfig, defineTask } from '@benchsdk/runner';
import { providers } from './providers.js';
import { writeLegacyResults } from './legacy-results.js';

export const config = defineBenchmarkConfig({
  benchmarkSlug: 'sandbox-tti-local',
  benchmarkName: 'Sandbox TTI (local)',
  iterations: 100,       // total tasks per participant
  concurrency: 1,        // 1 = sequential, N = burst, N + staggerDelayMs = staggered
  participants: providers,
  // Aggregate post-run work (the one thing a single task can't see) lives here.
  onComplete: (outcome) => writeLegacyResults(outcome.participants),
});

export const task = defineTask(async ({ participant, step, measure, log }) => {
  log('creating sandbox', { level: 'info', meta: { participant: participant.name } });
  // Named steps via `ctx.step`: values flow between steps with closures and
  // cleanup runs in a `finally`. Each step is a first-class platform record
  // with its own timing/status. A step returning `{ stdout, stderr, exitCode }`
  // writes that output to the worker log unless `captureOutput: false` is passed.
  const sandbox = await step('create', () => participant.createCompute().sandbox.create());
  try {
    const t0 = performance.now();
    await step('exec', () => sandbox.runCommand('node -v'));
    measure({ ttiMs: performance.now() - t0 });   // metrics → the platform
  } finally {
    await step('destroy', () => sandbox.destroy());
  }
});
```

用 CLI 运行它( 旗子覆盖了配置键 ):

```sh
bench run benchmarks/sandbox/sandbox-tti.bench.ts --iterations 100 --concurrency 20 --provider e2b,modal
```

`bench run` 需要平台认证- `BENCHMARKS_PLATFORM_API_KEY`, (中文(简体) ), `BENCHMARKS_PLATFORM_TOKEN`,或通过 `bench auth login` 即使是为了 `--dry-run` 编号 : `--no-ingest` 编号 : `BENCHSDK_NO_INGEST=1`;这些旗帜只跳过上传,不会跳过认证.

要装入没有构建步骤的 TypeScript 基准, 请在 TS 加载器下运行 CLI :

```sh
tsx node_modules/@benchsdk/runner/dist/bin.js run sandbox-tti.bench.ts
```

### 背景频道

在一项任务中,背景暴露出三个不同的渠道:

-   **`step(name, fn, options?)`** ——返回 `fn`'对您的代码的值(步骤之间的线性活对象);在平台上记录步骤的时间/状态. 返回值从不自动记录为数据。 设定 `captureOutput: false` 以返回结果形状对象(`stdout`, (中文(简体) ), `stderr`, (中文(简体) ), `exitCode`,.)没有写在工人日志上. 使用 `parallelInvocations` (原为 `concurrency`以平行方式多次引用一步.
-   **`measure(data)`** ——有明确尺度的通道. 内召入一 `step()` 它合并到该步骤的数据中;在任务顶层调用它合并到任务记录中. 没有明确步骤的任务记录为一项隐含 `'task'` 脚步进行测量.
-   **`log(message, metaOrOptions?)`** ——人可读取的对运行时间的叙述. `metaOrOptions` 可以是元数据 JSON 对象或 `{ level: 'debug' | 'info' | 'warn' | 'error', meta?: JsonObject }`。 。 。 .

## 平台数据命令

`bench` 是一个统一的CLI。 再说 `bench run`,它可以认证和查询平台:

```sh
bench check <file.bench.ts>
bench auth login
bench benchmarks list
bench runs list <slug>
bench results <slug> --run <runId>
bench artifacts list <slug> <runId>
bench export <slug> --out ./exports
```

见 [长椅-cli技能](https://npmcn.com/package/.agents/skills/benchsdk-cli/SKILL.md) 用于完整的 CLI 参考、 OAuth 设备编码登录、 配置/证书文件以及 CI 使用.

## 实例和完整指南

关于逐个编写指南和涵盖每个能力的可操作实例,见 [`WRITING_BENCHMARKS.md`](https://npmcn.com/package/WRITING_BENCHMARKS.md) 编辑 [`examples/`](https://npmcn.com/package/examples) 目录.

## 许可证

麻省理工学院

## 常见问题

### @benchsdk/runner 是什么？

基准框架:任务\+步骤\+配置原始人和驱动@benchsdk/worker的本地管弦乐器

### 如何安装 @benchsdk/runner？

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

### @benchsdk/runner 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @benchsdk/runner 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @benchsdk/runner 需要什么版本的 Node\.js？

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

### @benchsdk/runner 可以商用吗？

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

### @benchsdk/runner 的下载量有多少？

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

### @benchsdk/runner 还在维护吗？

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

