---
read_when:
    - 2026년 5월 성능 및 패키지 크기 정리를 검증하고 있습니다
    - OpenClaw 성능 및 의존성 블로그 게시글의 근거 수치가 필요합니다
    - 릴리스 게이트, 패키지 shrinkwrap 또는 Plugin 의존성 경계를 변경하고 있습니다
summary: 2026년 5월 성능, 패키지 크기, 종속성 및 shrinkwrap 정리에 대한 시각적 요약과 기술적 증거
title: 릴리스 성능 점검
x-i18n:
    generated_at: "2026-06-27T18:07:06Z"
    model: gpt-5.5
    postprocess_version: locale-links-v1
    provider: openai
    source_hash: 93438b8037a40ed9e5590854926badfe943d440e4c585e6290d29b54764e861b
    source_path: reference/release-performance-sweep.md
    workflow: 16
---

이 페이지는 2026년 5월 OpenClaw 성능, 패키지 크기, 의존성, shrinkwrap 정리의 근거를 담고 있습니다. 공개 블로그 글의 기술 부록입니다.

여기에는 두 가지 감사 결과가 결합되어 있습니다.

- **릴리스 성능 점검:** `v2026.5.28`부터 안정 버전 `v2026.4.23`까지의 GitHub Releases를 대상으로 `OpenClaw Performance` 워크플로, `profile=smoke`, mock-provider 레인을 사용했습니다. 대부분의 태그 행은 샘플 하나이며, `v2026.5.27` 및 `v2026.5.28` 행은 최신 repeat-3 릴리스 브랜치 아티팩트를 사용합니다.
- **이전 4월 맥락:** `v2026.4.1`부터 `v2026.5.2`까지 게시된 `clawgrit-reports` mock-provider 기준선이며, 깨진 4월 말 릴리스를 공개 성능 기준선으로 간주하지 않기 위해서만 사용했습니다.
- **설치 용량 점검:** 임시 패키지에 새로 `npm install --ignore-scripts`를 실행하고, 크기는 `du -sk node_modules`로, 패키지 인스턴스 수는 `node_modules` 순회로 측정했습니다.
- **npm 패키지 크기 점검:** 게시된 릴리스에 대해 `npm pack openclaw@<version> --dry-run --json`을 실행해 압축 tarball 크기, 압축 해제 크기, 파일 수를 기록했습니다.

<Warning>
주요 성능 점검은 태그당 smoke 샘플 하나를 사용합니다. 단 `v2026.5.27` 및 `v2026.5.28` 행은 최신 repeat-3 릴리스 브랜치 아티팩트를 사용합니다. 이전 4월 맥락은 `clawgrit-reports`에 게시된 repeat-3 중앙값을 사용합니다. 이 숫자는 릴리스 게이트 통계가 아니라 추세 근거와 회귀 탐색 신호로 보세요.
</Warning>

## 스냅샷

성능 범위: **요청된 릴리스 77개**, **아티팩트 기반 지점 74개**, **사용할 수 없는 CI 실행 3개**. 측정된 최신 안정 버전 지점: `v2026.5.28`.

<CardGroup cols={2}>
  <Card title="Stable agent turn" icon="gauge">
    **콜드 턴 5.1배 더 빠름**

    - `v2026.4.14`: 9.8초
    - `v2026.5.28`: 1.9초

  </Card>
  <Card title="Published package" icon="package">
    **17.9MB tarball**

    최신 안정 버전 패키지이며, 3월 패키지 크기 최고점인 43.3MB에서 감소했습니다.

  </Card>
  <Card title="Latest stable install" icon="hard-drive">
    **361.7MiB 신규 설치**

    `v2026.5.28`은 중첩된 OpenClaw 의존성 트리를 크게 줄였지만, 로컬 설치 감사에서는 여전히 더 작은 259.7MiB 중첩 트리가 남아 있습니다.

  </Card>
  <Card title="Dependency graph" icon="boxes">
    **설치된 패키지 300개**

    최신 안정 버전 릴리스이며, 스크립트를 비활성화한 신규 설치에서 고유 패키지 이름/버전 루트로 측정했습니다.

  </Card>
</CardGroup>

## 설치 용량 타임라인

<CardGroup cols={2}>
  <Card title="Monthly high" icon="triangle-alert">
    **의존성 645개**

    이 샘플에서 `2026.2.26`은 월간 의존성 수 최고점이었습니다.

  </Card>
  <Card title="Shrinkwrap introduced" icon="lock">
    **1,020.6MB 설치**

    `2026.5.22`는 루트 shrinkwrap을 추가했고 패키지 형태 문제를 드러냈습니다. 중첩된 `openclaw/node_modules` 아래에 911.8MB가 들어갔습니다.

  </Card>
  <Card title="Latest stable" icon="tag">
    **361.7MiB 설치**

    `2026.5.28`은 `2026.5.27` 대비 신규 설치 크기를 52.8% 줄였지만, 여전히 259.7MiB 중첩 OpenClaw 트리를 설치합니다.

  </Card>
  <Card title="Dependency graph" icon="scissors">
    **패키지 루트 300개**

    `2026.5.28`은 `2026.5.27`보다 고유 패키지 이름/버전 루트를 71개 적게 설치합니다.

  </Card>
</CardGroup>

<Tip>
shrinkwrap 자체가 문제는 아니었습니다. 잘못된 패키지 형태가 문제였습니다. `v2026.5.28`도 여전히 shrinkwrap을 포함하지만, 중첩 의존성 트리가 훨씬 작고 로컬 감사에서 모든 플랫폼 canvas fanout이 사라졌습니다.
</Tip>

## 5.28에서 변경된 사항

`v2026.5.27`과 `v2026.5.28` 사이의 정리는 기능 자체를 제거한 것이 아니라 기본 설치 그래프를 줄였습니다.

<CardGroup cols={2}>
  <Card title="루트 기본 그래프" icon="git-branch">
    고유 패키지 이름/버전 루트는 **371**에서 **300**으로 줄었습니다. 패키지 인스턴스는 **372**에서 **301**로 줄었습니다.
  </Card>
  <Card title="중첩 트리" icon="unplug">
    동일한 로컬 설치 감사에서 중첩 `openclaw/node_modules`는 **656.1MiB**에서 **259.7MiB**로 줄었습니다.
  </Card>
  <Card title="네이티브 선택적 콘" icon="cpu">
    모든 플랫폼용 `@napi-rs/canvas` 네이티브 패키지 콘은 더 이상 기본 설치에 포함되지 않습니다.
  </Card>
  <Card title="공급망 표면" icon="shield">
    기본 패키지가 적다는 것은 기본적으로 신뢰해야 하는 tarball, 유지관리자, 네이티브 바이너리, 설치 시 동작, 전이 업데이트 경로가 더 적다는 뜻입니다.
  </Card>
</CardGroup>

## 주요 수치

4월 말의 깨진 행을 공개 성능 기준선으로 사용하지 마세요.
`v2026.4.23`과 `v2026.4.29`는 유용한 회귀 증거이지만, 큰 `14x`식 델타는 대부분 나쁜 릴리스 라인에서 회복한 정도를 설명합니다.

블로그 서사에서는 규모를 보여 주는 기준으로 더 이른 4월 공개 기준선을 사용하세요.

| 지표          | 더 이른 4월 기준선 | `v2026.5.28` |                    델타 |
| --------------- | ---------------------: | -----------: | -----------------------: |
| 콜드 에이전트 턴 |                9,819ms |      1,908ms | 80.6% 낮음, 5.1배 빠름 |
| 웜 에이전트 턴 |                7,458ms |      1,870ms | 74.9% 낮음, 4.0배 빠름 |
| 에이전트 피크 RSS  |                686.2MB |      581.0MB |              15.3% 낮음 |

더 이른 4월 기준선은 공개된 `clawgrit-reports` mock-provider 실행의 `v2026.4.14`입니다. 해당 실행은 반복 3을 사용했고, 진단 타임라인이 방출되지 않았기 때문에만 실패했습니다. 콜드, 웜, RSS 중앙값은 여전히 대략적인 규모로 유용합니다. 이를 릴리스 게이트 통계가 아니라 서사적 맥락으로 취급하세요.

5월 스윕 안에서 최신 릴리스 브랜치 행은 `v2026.5.2`에서 실질적으로 이동했습니다.

| 지표          | `v2026.5.2` | `v2026.5.28` |       델타 |
| --------------- | ----------: | -----------: | ----------: |
| 콜드 에이전트 턴 |     3,897ms |      1,908ms | 51.0% 낮음 |
| 웜 에이전트 턴 |     3,610ms |      1,870ms | 48.2% 낮음 |
| 에이전트 피크 RSS  |     613.7MB |      581.0MB |  5.3% 낮음 |

이전 안정 릴리스와 비교하면 다음과 같습니다.

| 지표          | `v2026.5.27` | `v2026.5.28` |       델타 |
| --------------- | -----------: | -----------: | ----------: |
| 콜드 에이전트 턴 |      2,231ms |      1,908ms | 14.5% 낮음 |
| 웜 에이전트 턴 |      2,226ms |      1,870ms | 16.0% 낮음 |
| 에이전트 피크 RSS  |      649.0MB |      581.0MB | 10.5% 낮음 |

### 설치 공간

| 지표                                          |  기준선 | `v2026.5.28` |       델타 |
| ----------------------------------------------- | --------: | -----------: | ----------: |
| `2026.5.22` 피크 대비 설치 크기              | 1,020.6MB |     361.7MiB | 64.6% 낮음 |
| 최신 릴리스 `2026.5.27` 대비 설치 크기    |  767.1MiB |     361.7MiB | 52.8% 낮음 |
| 월간 최고 `2026.2.26` 대비 의존성      |       645 |          300 | 53.5% 낮음 |
| 최신 릴리스 `2026.5.27` 대비 의존성    |       371 |          300 | 19.1% 낮음 |
| `2026.5.22` 대비 중첩 `openclaw/node_modules` |   911.8MB |     259.7MiB | 71.5% 낮음 |
| `2026.5.27` 대비 중첩 `openclaw/node_modules` |  656.1MiB |     259.7MiB | 60.4% 낮음 |

### npm 패키지 크기

| 버전     | 압축된 tarball | 압축 해제된 패키지 |  파일 | 참고                             |
| ----------- | -----------------: | ---------------: | -----: | --------------------------------- |
| `2026.1.30` |             12.8MB |           33.5MB |  4,607 | 초기 리브랜딩 패키지           |
| `2026.2.26` |             23.6MB |           82.9MB | 10,125 | 기능 증가                    |
| `2026.3.31` |             43.3MB |          182.6MB | 21,037 | 패키지 크기 최고점           |
| `2026.4.29` |             22.9MB |           74.6MB |  9,309 | 패키지 가지치기가 보임           |
| `2026.5.12` |             23.4MB |           80.1MB | 12,035 | 주요 외부 Plugin 분리       |
| `2026.5.22` |             17.2MB |           76.9MB | 12,386 | 문서/자산이 패키지에서 제외됨 |
| `2026.5.27` |             17.8MB |           79.0MB | 12,509 | 이전 안정 패키지           |
| `2026.5.28` |             17.9MB |           81.0MB |  9,082 | 최신 안정 패키지             |

`2026.5.12`는 changelog에서 보이는 Plugin 추출 마일스톤입니다.
Amazon Bedrock, Bedrock Mantle, Slack, OpenShell sandbox, Anthropic Vertex, Matrix, WhatsApp은 코어 의존성 경로 밖으로 이동했으므로, 해당 의존성 콘은 모든 코어 설치가 아니라 해당 Plugin과 함께 설치됩니다.

## Kova 에이전트 턴 요약

4월 안정 라인에는 서로 다른 두 이야기가 있습니다. 4월 초는 느렸지만 식별 가능한 수준이었습니다. 4월 말은 회귀 절벽이 되었습니다. `v2026.5.2`는 mock-provider 레인이 처음으로 3-5초 범위로 내려가고 제공된 스윕에서 일관되게 통과하기 시작한 지점입니다.

이전 공개 맥락:

| 릴리스      | Kova | 콜드 턴 | 웜 턴 | 에이전트 피크 RSS |
| ------------ | ---- | --------: | --------: | -------------: |
| `v2026.4.10` | 실패 |  11,031ms |   7,962ms |        679.0MB |
| `v2026.4.12` | 실패 |  11,965ms |   8,289ms |        713.5MB |
| `v2026.4.14` | 실패 |   9,819ms |   7,458ms |        686.2MB |
| `v2026.4.20` | 실패 |  22,314ms |  18,811ms |        810.8MB |
| `v2026.4.22` | 실패 |   9,630ms |   7,459ms |        743.0MB |

제공된 스윕:

| 릴리스             | Kova | 콜드 턴 | 웜 턴 | 에이전트 피크 RSS |
| ------------------- | ---- | --------: | --------: | -------------: |
| `v2026.4.23`        | 실패 |  47,847ms |   8,010ms |      1,082.7MB |
| `v2026.4.24`        | 실패 |  48,264ms |  25,483ms |        996.0MB |
| `v2026.4.25`        | 실패 |  81,080ms |  59,172ms |      1,113.9MB |
| `v2026.4.26`        | 실패 |  76,771ms |  54,941ms |      1,140.8MB |
| `v2026.4.27`        | 실패 |  60,902ms |  33,699ms |      1,156.0MB |
| `v2026.4.29`        | 실패 |  94,031ms |  57,334ms |      3,613.7MB |
| `v2026.5.2`         | 통과 |   3,897ms |   3,610ms |        613.7MB |
| `v2026.5.7`         | 통과 |   3,923ms |   3,693ms |        654.1MB |
| `v2026.5.12`        | 통과 |   7,248ms |   6,629ms |        834.8MB |
| `v2026.5.18`        | 통과 |   3,301ms |   2,913ms |        630.3MB |
| `v2026.5.20`        | 통과 |   3,413ms |   2,952ms |        643.2MB |
| `v2026.5.22`        | 통과 |   4,494ms |   4,093ms |        654.3MB |
| `v2026.5.26`        | 통과 |   2,626ms |   2,282ms |        660.4MB |
| `v2026.5.27-beta.1` | 통과 |   2,575ms |   2,217ms |        635.3MB |
| `v2026.5.27`        | 통과 |   2,231ms |   2,226ms |        649.0MB |
| `v2026.5.28`        | 통과 |   1,908ms |   1,870ms |        581.0MB |

## 소스 프로브

필수 프로브 진입점이 해당 소스 트리에 아직 없었기 때문에, 성공한 이전 ref 17개에 대해 소스 프로브는 건너뛰었습니다. 해당 ref의 에이전트 턴 지표는 여전히 존재합니다.

대표 소스 프로브 지점:

| 릴리스             | 기본 `readyz` p50 | Plugin 50개 `readyz` p50 | CLI 상태 p50 | Plugin 최대 RSS |
| ------------------- | -------------------: | ----------------------: | -------------: | -------------: |
| `v2026.4.29`        |              2,819ms |                 2,618ms |        1,679ms |        389.0MB |
| `v2026.5.2`         |              2,324ms |                 2,013ms |        1,384ms |        377.2MB |
| `v2026.5.7`         |              1,649ms |                 1,540ms |        1,175ms |        387.6MB |
| `v2026.5.18`        |              1,942ms |                 1,927ms |          607ms |        426.5MB |
| `v2026.5.20`        |              1,966ms |                 1,987ms |          621ms |        455.0MB |
| `v2026.5.22`        |              2,081ms |                 1,884ms |        5,095ms |        444.2MB |
| `v2026.5.26`        |              1,546ms |                 1,634ms |          656ms |        400.4MB |
| `v2026.5.27-beta.1` |              1,462ms |                 1,548ms |          548ms |        394.0MB |
| `v2026.5.27`        |              1,491ms |                 1,571ms |          553ms |        401.5MB |
| `v2026.5.28`        |              1,457ms |                 1,474ms |          623ms |        386.1MB |

`v2026.5.22` CLI 상태 급증은 agent-turn 레인이 여전히 통과했더라도 이 표에서 확인할 수 있습니다.
대상 CLI 또는 Gateway 회귀를 조사할 때는 소스 프로브를 유지하세요.

## 설치 공간 감사

의존성 샘플은 월별 안정 릴리스 하나와
`2026.5.22` shrinkwrap 도입 이벤트 및 최신 `2026.5.28` 릴리스를 사용합니다.

| 지점               | 설치된 의존성 | 신규 설치 | OpenClaw 패키지 | 중첩된 `openclaw/node_modules` | 루트 shrinkwrap | Canvas 설치 동작                          |
| ------------------ | -------------: | ------------: | ---------------: | -----------------------------: | --------------- | ----------------------------------------- |
| 1월 `2026.1.30`    |            605 |       438.4MB |           45.8MB |                          2.4MB | 아니요          | 최상위 wrapper + `darwin-arm64`           |
| 2월 `2026.2.26`    |            645 |       575.7MB |          110.1MB |                          3.5MB | 아니요          | 최상위 wrapper + `darwin-arm64`           |
| 3월 `2026.3.31`    |            438 |       584.1MB |          234.8MB |                            0MB | 아니요          | 최상위 wrapper + `darwin-arm64`           |
| 4월 `2026.4.29`    |            392 |       335.0MB |           97.4MB |                            0MB | 아니요          | 설치된 항목 없음                          |
| `2026.5.22`        |            401 |     1,020.6MB |        1,020.4MB |                        911.8MB | 예              | 중첩: `@napi-rs/canvas` 패키지 12개 모두 |
| 5월 `2026.5.26`    |            371 |       767.5MB |          767.4MB |                        656.4MB | 예              | 중첩: `@napi-rs/canvas` 패키지 12개 모두 |
| `2026.5.27`        |            371 |      767.1MiB |         766.9MiB |                       656.1MiB | 예              | 중첩: `@napi-rs/canvas` 패키지 12개 모두 |
| 최신 `2026.5.28` |            300 |      361.7MiB |         361.6MiB |                       259.7MiB | 예              | 설치된 항목 없음                          |

### Shrinkwrap 경계

<CardGroup cols={2}>
  <Card title="Shrinkwrap 이전" icon="unlock">
    `2026.5.20`에는 루트 shrinkwrap이 없고, 큰 중첩 OpenClaw 의존성
    트리도 없습니다.
  </Card>
  <Card title="도입됨" icon="lock">
    `2026.5.22`는 루트 shrinkwrap을 추가하고 중첩된
    `openclaw/node_modules` 아래에 911.8MB를 설치합니다.
  </Card>
  <Card title="최신 안정 버전" icon="tag">
    `2026.5.28`은 shrinkwrap을 유지하며 여전히 중첩된
    `openclaw/node_modules` 아래에 259.7MiB를 설치합니다.
  </Card>
  <Card title="Canvas fanout 수정됨" icon="check">
    `2026.5.28`은 로컬 신규 설치 감사에서 더 이상 어떤 `@napi-rs/canvas`
    패키지도 설치하지 않습니다.
  </Card>
</CardGroup>

게시된 tarball 검사를 통해 경계를 확인할 수 있습니다.

| 버전        | 게시된 안정 버전? | 루트 `npm-shrinkwrap.json` | 참고                                  |
| ----------- | ----------------- | -------------------------- | ------------------------------------- |
| `2026.5.20` | 예                | 아니요                     | shrinkwrap 이전 마지막 안정 릴리스   |
| `2026.5.21` | 아니요            | n/a                        | 안정 npm 릴리스 없음                 |
| `2026.5.22` | 예                | 예                         | shrinkwrap 도입                      |
| `2026.5.23` | 아니요            | n/a                        | 안정 npm 릴리스 없음                 |
| `2026.5.24` | 아니요            | n/a                        | 안정 npm 릴리스 없음                 |
| `2026.5.25` | 아니요            | n/a                        | 안정 npm 릴리스 없음                 |
| `2026.5.26` | 예                | 예                         | 중첩 의존성 트리가 여전히 존재       |
| `2026.5.27` | 예                | 예                         | 중첩 의존성 트리가 여전히 존재       |
| `2026.5.28` | 예                | 예                         | 중첩 의존성 트리가 훨씬 작아짐       |

중요한 차이는 다음과 같습니다. **shrinkwrap 자체가 문제가 아닙니다**.
`v2026.5.28`도 여전히 루트 shrinkwrap을 제공합니다. 문제는 npm이 큰 중첩
OpenClaw 의존성 트리와 12개의 `@napi-rs/canvas` 플랫폼 패키지를 모두
구체화하게 만든 패키지 형태였습니다. 중첩 트리는 `v2026.5.28`에서 더 작아졌고,
canvas 플랫폼 fanout은 더 이상 로컬 감사에 나타나지 않습니다.

shrinkwrap에 대한 쉬운 설명과 maintainer 수준 패키지 검사는
[npm shrinkwrap](/ko/gateway/security/shrinkwrap)을 참조하세요.

## 공급망 해석

의존성 수는 설치 크기 지표일 뿐만 아니라 운영 보안 지표이기도 합니다.
모든 패키지는 운영자가 신뢰해야 하는 maintainer, tarball, 전이 업데이트,
선택적 네이티브 바이너리, 설치 시 동작의 집합을 확장합니다.

정리 방향은 다음과 같습니다.

- 무겁고 선택적인 기능은 기본 core 설치 밖에 둡니다
- Plugin 패키지가 자체 런타임 의존성 그래프를 소유하게 합니다
- Gateway 시작 중 런타임 패키지 관리자 복구를 피합니다
- 모든 플랫폼 네이티브 패키지 구체화를 유발하지 않으면서 결정적 설치를 보존합니다
- 패키지 승인 및 측정 경로에서 설치 스크립트를 비활성화된 상태로 유지합니다
- 게시 전에 중첩 의존성 트리와 네이티브 선택적 의존성 폭증을 포착합니다

관련 문서:

- [Plugin 의존성 해석](/ko/plugins/dependency-resolution)
- [Plugin 인벤토리](/ko/plugins/plugin-inventory)
- [전체 릴리스 검증](/ko/reference/full-release-validation)
