---
read_when:
    - Ви перевіряєте очищення продуктивності та розміру пакунків за травень 2026 року
    - Вам потрібні цифри, що стоять за дописом у блозі про продуктивність і залежності OpenClaw
    - Ви змінюєте релізні гейти, shrinkwrap пакунків або межі залежностей плагінів
summary: Візуальний підсумок і технічні докази для очищення продуктивності, розміру пакунка, залежностей і shrinkwrap за травень 2026 року
title: Перевірка продуктивності релізу
x-i18n:
    generated_at: "2026-06-27T18:17:58Z"
    model: gpt-5.5
    postprocess_version: locale-links-v1
    provider: openai
    source_hash: 93438b8037a40ed9e5590854926badfe943d440e4c585e6290d29b54764e861b
    source_path: reference/release-performance-sweep.md
    workflow: 16
---

Ця сторінка фіксує докази, що стоять за очищенням продуктивності, розміру пакета, залежностей і shrinkwrap OpenClaw у травні 2026 року. Це технічний супровід до публічної публікації в блозі.

Тут об’єднано два аудити:

- **Перевірка продуктивності релізів:** GitHub Releases від `v2026.5.28` назад до
  стабільного `v2026.4.23`, з використанням workflow `OpenClaw Performance`,
  `profile=smoke`, lane mock-провайдера. Більшість рядків тегів мають один зразок; рядки
  `v2026.5.27` і `v2026.5.28` використовують найновіші repeat-3 артефакти гілки релізу.
- **Попередній квітневий контекст:** опубліковані базові значення mock-провайдера
  `clawgrit-reports` від `v2026.4.1` до `v2026.5.2`, використані лише щоб не вважати
  зламані релізи кінця квітня публічною базою продуктивності.
- **Перевірка розміру встановлення:** свіжі встановлення `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
артефакти гілки релізу. Попередній квітневий контекст використовує опубліковані repeat-3
медіани з `clawgrit-reports`. Розглядайте ці числа як доказ тенденції та сигнал
для пошуку регресій, а не як статистику release-gate.
</Warning>

## Знімок

Покриття продуктивності: **77 запитаних релізів**, **74 точки з артефактами**,
і **3 недоступні CI-запуски**. Найновіша виміряна стабільна точка: `v2026.5.28`.

<CardGroup cols={2}>
  <Card title="Stable agent turn" icon="gauge">
    **У 5,1 раза швидший холодний turn**

    - `v2026.4.14`: 9,8 с
    - `v2026.5.28`: 1,9 с

  </Card>
  <Card title="Published package" icon="package">
    **Tarball 17,9MB**

    Найновіший стабільний пакет, менше за березневий пік розміру пакета 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 і виявив проблему форми пакета:
    911,8MB потрапили у вкладений `openclaw/node_modules`.

  </Card>
  <Card title="Latest stable" icon="tag">
    **Встановлення 361,7MiB**

    `2026.5.28` скорочує розмір свіжого встановлення на 52,8% порівняно з `2026.5.27`, але все ще
    встановлює вкладене дерево OpenClaw розміром 259,7MiB.

  </Card>
  <Card title="Dependency graph" icon="scissors">
    **300 коренів пакетів**

    `2026.5.28` встановлює на 71 менше унікальних коренів імені/версії пакета, ніж
    `2026.5.27`.

  </Card>
</CardGroup>

<Tip>
Shrinkwrap сам по собі не був проблемою. Нею була погана форма пакета.
`v2026.5.28` усе ще постачається зі shrinkwrap, але вкладене дерево залежностей значно
менше, а fanout canvas для всіх платформ зник у локальному аудиті.
</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>

## Головні числа

Не використовуйте зламані рядки кінця квітня як публічні базові показники продуктивності.
`v2026.4.23` і `v2026.4.29` корисні як докази регресії, але великі
дельти у стилі `14x` здебільшого описують відновлення після невдалої лінійки релізів.

Для наративу в блозі використовуйте ранішу квітневу опубліковану базову лінію як масштаб:

| Метрика         | Раніша квітнева базова лінія | `v2026.5.28` |                         Дельта |
| --------------- | ---------------------------: | -----------: | -----------------------------: |
| Холодний хід агента |                9,819ms |      1,908ms | на 80.6% нижче, у 5.1x швидше |
| Теплий хід агента |                7,458ms |      1,870ms | на 74.9% нижче, у 4.0x швидше |
| Піковий RSS агента  |                686.2MB |      581.0MB |                  на 15.3% нижче |

Раніша квітнева базова лінія — це `v2026.4.14` з опублікованого
запуску mock-provider `clawgrit-reports`. У цьому запуску використовувався repeat 3, і він зазнав невдачі лише
тому, що діагностичну часову шкалу не було виведено; медіани холодного, теплого та RSS
усе ще корисні як приблизний масштаб. Розглядайте це як наративний контекст, а не як
статистику для релізного шлюзу.

У межах травневого проходу останній рядок релізної гілки суттєво зрушився від
`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% нижче |
| Вкладений `openclaw/node_modules` від `2026.5.22` |   911.8MB |     259.7MiB | на 71.5% нижче |
| Вкладений `openclaw/node_modules` від `2026.5.27` |  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 | docs/assets виключено з пакета       |
| `2026.5.27` |             17.8MB |           79.0MB | 12,509 | попередній стабільний пакет          |
| `2026.5.28` |             17.9MB |           81.0MB |  9,082 | останній стабільний пакет            |

`2026.5.12` — це помітна віха винесення plugin у changelog:
Amazon Bedrock, Bedrock Mantle, Slack, OpenShell sandbox, Anthropic Vertex,
Matrix і WhatsApp вийшли з шляху залежностей ядра, тож їхні конуси залежностей
встановлюються разом із цими plugins, а не з кожним встановленням ядра.

## Підсумок ходу агента Kova

Квітнева стабільна лінійка містить дві різні історії. Ранній квітень був повільним,
але впізнаваним. Кінець квітня перетворився на регресійний обрив. `v2026.5.2` — це місце,
де лінія mock-provider уперше опускається в діапазон 3-5s і починає
послідовно проходити у наданому проході.

Раніший опублікований контекст:

| Реліз        | 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 |

## Вихідні зонди

Вихідні зонди було пропущено для 17 успішних старіших refs, оскільки ті дерева вихідного коду
ще не мали потрібних точок входу зондів. Метрики ходів агента для цих refs усе ще
існують.

Репрезентативні точки вихідних зондів:

| Реліз               | `readyz` p50 за замовчуванням | 50 plugins `readyz` p50 | CLI health p50 | Максимальний RSS Plugin |
| ------------------- | ----------------------------: | ----------------------: | -------------: | ----------------------: |
| `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 |

Сплеск справності CLI у `v2026.5.22` видно в цій таблиці, хоча лінія
agent-turn усе ще пройшла. Зберігайте вихідні зонди під час розслідування
цільових регресій CLI або Gateway.

## Аудит інсталяційного відбитка

Вибірки залежностей використовують по одному стабільному випуску на місяць,
а також подію запровадження shrinkwrap у `2026.5.22` і найновіший випуск
`2026.5.28`.

| Точка              | Встановлені залежності | Свіже встановлення | Пакет OpenClaw | Вкладений `openclaw/node_modules` | Кореневий shrinkwrap | Поведінка встановлення Canvas             |
| ------------------ | ---------------------: | -----------------: | -------------: | --------------------------------: | -------------------- | ----------------------------------------- |
| Січ. `2026.1.30`   |                    605 |            438.4MB |         45.8MB |                             2.4MB | ні                   | обгортка верхнього рівня + `darwin-arm64` |
| Лют. `2026.2.26`   |                    645 |            575.7MB |        110.1MB |                             3.5MB | ні                   | обгортка верхнього рівня + `darwin-arm64` |
| Бер. `2026.3.31`   |                    438 |            584.1MB |        234.8MB |                               0MB | ні                   | обгортка верхнього рівня + `darwin-arm64` |
| Квіт. `2026.4.29`  |                    392 |            335.0MB |         97.4MB |                               0MB | ні                   | нічого не встановлено                     |
| `2026.5.22`        |                    401 |          1,020.6MB |      1,020.4MB |                           911.8MB | так                  | вкладено: усі 12 пакетів `@napi-rs/canvas` |
| Трав. `2026.5.26`  |                    371 |            767.5MB |        767.4MB |                           656.4MB | так                  | вкладено: усі 12 пакетів `@napi-rs/canvas` |
| `2026.5.27`        |                    371 |           767.1MiB |       766.9MiB |                          656.1MiB | так                  | вкладено: усі 12 пакетів `@napi-rs/canvas` |
| Найновіший `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 і встановлює 911.8MB у вкладений
    `openclaw/node_modules`.
  </Card>
  <Card title="Найновіший стабільний" icon="tag">
    `2026.5.28` зберігає shrinkwrap і все ще встановлює 259.7MiB у вкладений
    `openclaw/node_modules`.
  </Card>
  <Card title="Розгортання Canvas виправлено" icon="check">
    `2026.5.28` більше не встановлює жодних пакетів `@napi-rs/canvas` у
    локальному аудиті свіжого встановлення.
  </Card>
</CardGroup>

Перевірка опублікованого tarball підтверджує межу:

| Версія      | Опубліковано як стабільну? | Кореневий `npm-shrinkwrap.json` | Примітки                                   |
| ----------- | -------------------------- | ------------------------------- | ------------------------------------------ |
| `2026.5.20` | так                        | ні                              | останній стабільний випуск до shrinkwrap   |
| `2026.5.21` | ні                         | н/д                             | немає стабільного npm-випуску              |
| `2026.5.22` | так                        | так                             | shrinkwrap запроваджено                    |
| `2026.5.23` | ні                         | н/д                             | немає стабільного npm-випуску              |
| `2026.5.24` | ні                         | н/д                             | немає стабільного npm-випуску              |
| `2026.5.25` | ні                         | н/д                             | немає стабільного 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 більше не потрапляє в
локальний аудит.

Просте пояснення shrinkwrap і перевірок пакетів на рівні супровідників див.
у [npm shrinkwrap](/uk/gateway/security/shrinkwrap).

## Інтерпретація ланцюга постачання

Кількість залежностей є метрикою операційної безпеки, а не лише метрикою
розміру встановлення. Кожен пакет розширює набір супровідників, tarball,
транзитивних оновлень, необов’язкових нативних бінарних файлів і поведінки під
час встановлення, яким оператори мають довіряти.

Напрям очищення такий:

- тримати важкі й необов’язкові можливості поза стандартним встановленням ядра
- зробити так, щоб пакети Plugin володіли своїм графом runtime-залежностей
- уникати runtime-відновлення через менеджер пакетів під час запуску Gateway
- зберегти детерміновані встановлення без матеріалізації нативних пакетів для
  всіх платформ
- тримати скрипти встановлення вимкненими в шляхах приймання та вимірювання
  пакетів
- виявляти вкладені дерева залежностей і вибухове зростання нативних
  необов’язкових залежностей до публікації

Пов’язані документи:

- [Розв’язання залежностей Plugin](/uk/plugins/dependency-resolution)
- [Інвентар Plugin](/uk/plugins/plugin-inventory)
- [Повна валідація випуску](/uk/reference/full-release-validation)
