Skip to content

Commit 5447900

Browse files
committed
chore(actor): ⚡ release v4.5.2
1 parent c7f70e0 commit 5447900

2 files changed

Lines changed: 9 additions & 4 deletions

File tree

changelogs/unreleased.md

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1 @@
11
# Unreleased
2-
3-
## 🔧 Fixes
4-
5-
- **Release passivated actor and grain references from the passivation heap** ([#1317](https://github.com/Tochemey/goakt/pull/1317)). Clear popped heap slots so deactivated participants are no longer retained by the heap backing array and can be reclaimed by the garbage collector.

changelogs/v4.5.2.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# v4.5.2 - 2026-08-21
2+
3+
## 🔧 Fixes
4+
5+
- **Passivated actors and grains are released from the passivation heap** ([#1317](https://github.com/Tochemey/goakt/pull/1317)). The passivation heap shrank its queue slice without clearing the popped slot, so the backing array kept a strong reference to every passivated participant. Each retained entry pinned its PID together with the actor or grain instance, mailbox, and state for the lifetime of the actor system. Popped slots are now cleared, and passivating `50,000` grains drops retained heap from about `78 MB` to about `3 MB`. The stream heaps that reorder parallel map results and merge sequence elements had the same defect and now clear popped slots as well.
6+
7+
## ⚡ Performance
8+
9+
- **Lower per-actor heap footprint and GC mark cost at large resident populations** ([#1315](https://github.com/Tochemey/goakt/issues/1315), [#1316](https://github.com/Tochemey/goakt/pull/1316)). Spawned actors no longer eagerly allocate bookkeeping maps that usually stay empty, `SpawnChild` no longer allocates a default supervisor and passivation strategy per child, the spawn path no longer allocates a logger that is immediately replaced, and metrics-enabled systems register a constant two meter callbacks instead of one per actor plus one. An idle child actor retains `19.7%` fewer bytes and `24%` fewer objects, flat spawns retain `4.7%` fewer bytes, and spawn/stop churn triggers `9.8%` fewer GC cycles.

0 commit comments

Comments
 (0)