Neil
b45c6bbb9a
test(relay): attribute the post-GC residual with a heap-snapshot diff
...
Adds snapshot capture to the GC host, a constructor-level snapshot diff, and a
capture probe, then uses them to settle what survives a forced collection across
PTY churn.
It is not relay state. Diffing cycle 2 against cycle 10 over 200 PTY
create/destroy cycles, the entire +0.467 MB delta is V8: compiled code objects,
TrustedByteArray, ProtectedFixedArray, WeakArrayList, FeedbackVector,
LoadHandler. No application object appears in the growth at all -- no PTY
record, no replay buffer, no relay map or set. The replay-buffer retention at
pty-handler.ts:2150 was a plausible suspect and is not the cause.
Extending to 30 cycles shows why 10 was not enough to say so: retained heap
climbs 0.064 MB/cycle through the first decade, 0.017 through the second, and is
flat across the last three (12.834 / 12.834 / 12.835). It also falls twice,
which monotonic retention cannot do. The cycle count is env-overridable and
defaults to 30 so the next reader does not repeat the short-window mistake.
File descriptors stayed at exactly 25 for all 31 samples across 600 PTYs.
The diff reports instance count and total self size per constructor rather than
true retained size, which would need a dominator tree; a constructor whose
instance count tracks the churn is the signal being looked for.
2026-09-11 01:23:37 -07:00
..
2026-09-02 03:02:27 -07:00
2026-08-03 20:45:23 -07:00
2026-08-18 02:12:21 -07:00
2026-08-04 15:54:17 -07:00
2026-08-04 15:54:17 -07:00
2026-08-10 00:29:26 -07:00
2026-07-26 13:20:23 -07:00
2026-09-05 00:05:29 -07:00
2026-09-02 23:19:38 -07:00
2026-09-06 15:12:19 -07:00
2026-08-11 01:27:02 -07:00
2026-08-11 01:27:02 -07:00
2026-08-31 16:45:36 -07:00
2026-09-05 20:02:30 -07:00
2026-09-05 20:03:19 -07:00
2026-09-05 20:02:44 -07:00
2026-09-05 20:03:24 -07:00
2026-08-29 22:34:03 -07:00
2026-08-29 22:34:03 -07:00
2026-09-05 20:03:58 -07:00
2026-09-05 20:03:37 -07:00
2026-09-05 20:04:11 -07:00
2026-09-05 20:03:33 -07:00
2026-09-03 17:32:59 -07:00
2026-06-09 15:59:17 -07:00
2026-07-27 17:17:03 -07:00
2026-06-29 23:37:30 -07:00
2026-08-16 12:49:02 -07:00
2026-09-02 03:08:01 -07:00
2026-09-02 03:08:01 -07:00
2026-07-27 16:36:39 -07:00
2026-07-27 16:36:39 -07:00
2026-08-29 20:54:13 -07:00
2026-08-11 18:19:43 -07:00
2026-09-02 02:49:09 -07:00
2026-08-28 00:59:21 -07:00
2026-08-27 00:18:51 -07:00
2026-09-04 01:56:42 -07:00
2026-08-27 16:09:07 -07:00
2026-08-27 16:09:07 -07:00
2026-09-06 13:59:59 -07:00
2026-09-01 19:05:42 -07:00
2026-09-07 13:16:44 -04:00
2026-09-03 06:55:14 -04:00
2026-06-29 23:37:30 -07:00
2026-07-06 17:12:27 -07:00
2026-07-06 17:12:27 -07:00
2026-09-01 23:21:26 -07:00
2026-09-01 23:21:26 -07:00
2026-07-03 22:32:11 -07:00
2026-07-03 19:58:07 -07:00
2026-09-03 06:55:14 -04:00
2026-08-24 22:21:26 -07:00
2026-08-22 21:47:46 -07:00
2026-08-13 12:38:08 -07:00
2026-08-13 12:38:08 -07:00
2026-08-31 19:34:55 -07:00
2026-08-31 19:34:55 -07:00
2026-09-05 17:35:20 -07:00
2026-07-23 17:44:43 -07:00
2026-07-27 20:54:02 -07:00
2026-07-27 20:54:02 -07:00
2026-09-05 20:03:19 -07:00
2026-08-29 01:38:17 -07:00
2026-06-09 15:59:17 -07:00
2026-08-30 14:39:46 -07:00
2026-07-20 14:34:53 -07:00
2026-07-20 14:34:53 -07:00
2026-07-20 14:34:53 -07:00
2026-07-26 20:20:12 -07:00
2026-08-31 16:45:36 -07:00
2026-08-30 18:19:08 -07:00
2026-08-11 18:19:43 -07:00
2026-08-15 00:41:45 -07:00
2026-09-07 00:03:48 -04:00
2026-06-07 17:49:01 -07:00
2026-06-07 17:49:01 -07:00
2026-08-16 20:57:11 -07:00
2026-08-29 22:34:03 -07:00
2026-08-29 22:34:03 -07:00
2026-09-05 22:34:56 -07:00
2026-09-05 22:34:56 -07:00
2026-08-25 15:36:51 -07:00
2026-08-07 22:33:50 -07:00
2026-08-16 01:52:58 -07:00
2026-08-16 01:52:58 -07:00
2026-08-16 01:57:01 -07:00
2026-08-03 18:02:45 -07:00
2026-08-03 18:02:45 -07:00
2026-08-19 17:34:27 -07:00
2026-07-27 12:31:37 -07:00
2026-07-27 12:31:37 -07:00
2026-08-31 22:18:50 -07:00
2026-08-18 13:08:04 -07:00
2026-08-17 22:34:04 -07:00
2026-08-17 22:34:04 -07:00
2026-06-02 11:49:00 -07:00
2026-09-02 03:08:01 -07:00
2026-08-09 19:01:35 -07:00
2026-09-05 21:11:28 -07:00
2026-07-27 13:32:29 -07:00
2026-07-27 13:32:29 -07:00
2026-09-10 19:30:47 -07:00
2026-08-30 21:12:34 -07:00
2026-08-31 20:35:54 -07:00
2026-08-31 08:17:40 -07:00
2026-08-24 15:48:47 -07:00
2026-09-06 13:59:59 -07:00
2026-09-06 13:59:59 -07:00
2026-08-14 19:04:54 -04:00
2026-09-05 20:02:48 -07:00
2026-06-05 01:15:54 -07:00
2026-09-06 19:02:54 -07:00
2026-09-07 00:03:48 -04:00
2026-09-07 00:03:48 -04:00
2026-09-10 21:18:39 -07:00
2026-09-03 00:26:30 -07:00
2026-09-03 00:26:30 -07:00
2026-08-11 18:19:43 -07:00
2026-09-07 00:03:48 -04:00
2026-07-10 17:27:47 -07:00
2026-07-10 17:27:47 -07:00
2026-07-22 23:10:19 -07:00
2026-08-17 19:20:13 -07:00
2026-09-01 13:16:43 -07:00
2026-07-27 18:58:36 -07:00
2026-07-27 18:58:36 -07:00
2026-07-30 19:33:05 -07:00
2026-07-30 19:33:05 -07:00
2026-07-30 19:33:05 -07:00
2026-08-03 23:18:15 -07:00
2026-08-03 23:18:15 -07:00
2026-08-29 21:56:21 -07:00
2026-08-29 21:56:21 -07:00
2026-09-02 03:08:01 -07:00
2026-06-28 21:16:02 -07:00
2026-08-04 15:54:17 -07:00
2026-08-04 15:54:17 -07:00
2026-09-05 17:35:20 -07:00
2026-07-27 17:09:31 -07:00
2026-08-12 00:37:48 -07:00
2026-08-12 00:37:48 -07:00
2026-09-07 19:29:53 -07:00
2026-08-12 00:37:48 -07:00
2026-06-15 12:56:22 -07:00
2026-06-29 23:37:30 -07:00
2026-08-31 20:35:54 -07:00
2026-08-31 20:35:54 -07:00
2026-08-31 20:35:54 -07:00
2026-08-29 14:13:26 -07:00
2026-06-03 23:42:33 -07:00
2026-06-04 16:11:51 -04:00
2026-08-11 18:19:43 -07:00
2026-09-01 23:21:26 -07:00
2026-08-19 22:37:02 -07:00
2026-09-02 03:08:01 -07:00
2026-08-16 13:45:54 -07:00
2026-06-28 19:43:18 -07:00
2026-07-27 20:54:02 -07:00
2026-06-28 19:43:18 -07:00
2026-08-03 02:18:05 -07:00
2026-08-03 02:18:05 -07:00
2026-08-03 02:18:05 -07:00
2026-08-03 02:18:05 -07:00
2026-08-03 02:18:05 -07:00
2026-08-03 02:18:05 -07:00
2026-08-03 02:18:05 -07:00
2026-08-03 02:18:05 -07:00
2026-08-03 02:18:05 -07:00
2026-08-03 02:18:05 -07:00
2026-08-09 15:40:48 -07:00
2026-08-09 15:40:48 -07:00
2026-09-08 23:53:17 -07:00
2026-07-24 00:26:39 -07:00
2026-08-13 02:56:43 -07:00
2026-08-04 03:56:33 -07:00
2026-08-04 03:56:33 -07:00
2026-08-09 15:40:48 -07:00
2026-08-27 00:26:55 -07:00
2026-08-09 15:40:48 -07:00
2026-08-09 15:40:48 -07:00
2026-08-09 15:40:48 -07:00
2026-09-03 15:07:38 -07:00
2026-08-22 01:40:08 -07:00
2026-09-04 00:51:21 -07:00
2026-06-29 23:37:30 -07:00
2026-06-19 15:52:05 -07:00
2026-06-09 15:59:17 -07:00
2026-06-09 15:59:17 -07:00
2026-08-13 23:47:20 -07:00
2026-07-31 15:13:41 -07:00
2026-08-04 03:56:33 -07:00
2026-08-04 03:56:33 -07:00
2026-06-17 15:14:35 -07:00
2026-08-22 01:40:08 -07:00
2026-08-09 15:40:48 -07:00
2026-08-04 03:56:33 -07:00
2026-08-12 18:53:17 -07:00
2026-08-04 03:56:33 -07:00
2026-08-27 00:26:55 -07:00
2026-08-09 15:40:48 -07:00
2026-09-03 17:32:59 -07:00
2026-08-09 15:40:48 -07:00
2026-08-12 18:53:17 -07:00
2026-08-07 22:08:22 -07:00
2026-08-07 22:08:22 -07:00
2026-08-12 18:53:17 -07:00
2026-09-03 15:07:38 -07:00
2026-09-03 00:26:30 -07:00
2026-07-10 19:08:12 -07:00
2026-07-27 16:36:39 -07:00
2026-07-27 16:36:39 -07:00
2026-08-11 18:19:43 -07:00
2026-07-30 19:24:34 -07:00
2026-07-30 19:24:34 -07:00
2026-07-30 19:24:34 -07:00
2026-07-30 19:24:34 -07:00
2026-07-30 19:24:34 -07:00
2026-06-02 21:15:00 -07:00
2026-07-28 15:34:52 -07:00
2026-06-28 21:19:10 -07:00
2026-08-11 18:19:43 -07:00
2026-07-26 20:31:55 -07:00
2026-09-05 20:03:08 -07:00
2026-09-05 20:02:53 -07:00
2026-09-01 23:21:26 -07:00
2026-09-08 21:44:10 -07:00
2026-06-22 01:07:16 -07:00
2026-06-22 01:07:16 -07:00
2026-07-27 20:54:02 -07:00
2026-08-28 00:59:21 -07:00
2026-09-03 16:13:07 -07:00
2026-09-04 22:40:38 -07:00
2026-09-07 00:03:48 -04:00
2026-05-15 05:44:25 -04:00
2026-07-27 12:31:37 -07:00
2026-07-27 12:31:37 -07:00
2026-09-07 00:03:48 -04:00
2026-09-02 03:08:01 -07:00
2026-09-06 14:34:03 -04:00
2026-09-10 15:06:03 -04:00
2026-09-10 21:18:39 -07:00
2026-09-10 21:18:39 -07:00
2026-09-10 21:18:39 -07:00
2026-09-01 23:21:26 -07:00
2026-07-28 00:21:13 -07:00
2026-09-06 19:27:12 -07:00
2026-09-06 17:42:49 -07:00
2026-08-19 22:39:48 -07:00
2026-08-24 21:43:22 -07:00
2026-08-31 01:19:32 -07:00
2026-09-05 21:12:47 -07:00
2026-08-11 12:20:20 -07:00
2026-08-29 20:54:13 -07:00
2026-08-30 00:04:30 -07:00
2026-09-07 17:57:05 -07:00
2026-09-07 17:57:05 -07:00
2026-09-07 19:51:44 -07:00
2026-09-05 18:20:12 -07:00
2026-09-06 19:02:54 -07:00
2026-08-18 14:09:12 -07:00
2026-07-27 16:26:43 -07:00
2026-09-02 03:08:01 -07:00
2026-07-27 13:32:29 -07:00
2026-07-27 13:32:29 -07:00
2026-05-30 13:09:17 -07:00
2026-08-31 03:10:44 -07:00
2026-07-27 20:54:02 -07:00
2026-05-30 21:46:13 -07:00
2026-07-28 00:21:13 -07:00
2026-09-05 20:02:57 -07:00
2026-09-07 09:18:38 -07:00
2026-09-07 09:18:38 -07:00
2026-09-05 21:12:47 -07:00
2026-09-06 13:59:59 -07:00
2026-08-31 18:53:01 -07:00
2026-08-31 22:18:50 -07:00
2026-08-31 22:18:50 -07:00
2026-08-31 22:18:50 -07:00
2026-09-05 21:17:46 -07:00
2026-08-30 15:14:49 -07:00
2026-08-30 15:14:49 -07:00
2026-08-20 00:16:04 -07:00
2026-09-06 00:50:20 -07:00
2026-09-05 20:02:20 -07:00
2026-09-11 01:23:37 -07:00
2026-09-11 01:23:37 -07:00
2026-08-10 01:17:14 -07:00
2026-09-11 01:23:36 -07:00
2026-09-11 01:23:37 -07:00
2026-09-11 01:23:37 -07:00
2026-09-11 01:23:36 -07:00
2026-07-27 16:40:59 -07:00
2026-08-11 18:19:43 -07:00
2026-09-03 16:53:32 -04:00
2026-07-30 18:08:30 -07:00
2026-08-31 23:07:50 -04:00
2026-09-06 10:05:26 -07:00
2026-08-29 19:53:50 -07:00
2026-06-30 16:36:59 -07:00
2026-07-25 03:50:25 -07:00
2026-07-25 03:50:25 -07:00
2026-08-04 15:54:17 -07:00
2026-07-23 20:20:00 -07:00
2026-07-23 20:20:00 -07:00
2026-07-23 20:20:00 -07:00
2026-07-23 20:20:00 -07:00
2026-07-23 20:20:00 -07:00
2026-08-26 15:43:02 -07:00
2026-09-03 00:26:30 -07:00
2026-09-03 00:26:30 -07:00
2026-09-05 00:11:51 -07:00
2026-07-28 00:21:13 -07:00
2026-07-12 23:43:07 -07:00
2026-09-05 21:44:20 -07:00
2026-09-05 21:44:20 -07:00
2026-09-05 20:02:25 -07:00
2026-07-26 13:19:23 -07:00
2026-07-02 18:41:23 -04:00
2026-07-27 15:48:39 -07:00
2026-07-27 15:48:39 -07:00
2026-07-27 17:18:31 -07:00
2026-08-10 15:52:59 -07:00
2026-08-29 23:55:00 -07:00
2026-08-05 12:57:02 -07:00
2026-09-03 00:26:30 -07:00
2026-09-05 16:12:52 -07:00
2026-08-31 08:17:40 -07:00
2026-08-14 19:04:54 -04:00
2026-09-04 22:24:18 -07:00
2026-09-04 22:24:18 -07:00
2026-08-12 00:37:48 -07:00
2026-08-02 17:40:58 -07:00
2026-05-16 17:44:42 -04:00
2026-09-04 22:24:18 -07:00
2026-08-16 13:45:54 -07:00
2026-08-16 13:45:54 -07:00
2026-08-25 15:36:51 -07:00
2026-07-20 21:36:15 -07:00
2026-08-01 00:25:35 -07:00
2026-07-22 18:25:05 -07:00
2026-06-30 16:36:59 -07:00
2026-08-25 15:36:51 -07:00
2026-06-22 16:42:20 -07:00
2026-09-06 07:42:50 -07:00
2026-09-07 19:51:44 -07:00
2026-06-07 04:15:26 -07:00
2026-08-12 22:33:19 -07:00
2026-07-12 23:50:00 -07:00
2026-08-11 18:19:43 -07:00
2026-09-06 19:02:54 -07:00
2026-06-07 11:01:02 -07:00
2026-07-10 17:27:47 -07:00
2026-07-10 17:27:47 -07:00
2026-08-17 19:20:13 -07:00
2026-06-22 01:07:16 -07:00
2026-07-12 18:15:15 -07:00
2026-07-15 15:23:35 -07:00
2026-08-24 21:11:45 -07:00
2026-08-31 20:35:54 -07:00
2026-08-05 12:57:02 -07:00
2026-09-10 23:28:39 -04:00
2026-09-10 23:28:39 -04:00
2026-09-04 23:39:02 -07:00
2026-08-09 19:01:35 -07:00
2026-08-09 19:01:35 -07:00
2026-08-09 19:01:35 -07:00
2026-08-31 20:35:54 -07:00
2026-08-31 20:35:54 -07:00
2026-09-01 23:21:18 -07:00
2026-09-07 00:03:48 -04:00
2026-09-07 00:03:48 -04:00
2026-09-07 00:03:48 -04:00
2026-09-02 00:42:13 -04:00
2026-09-07 00:03:48 -04:00
2026-08-19 23:33:05 -07:00
2026-08-27 16:09:07 -07:00
2026-08-07 22:54:42 -07:00
2026-07-31 04:58:15 -07:00
2026-08-19 22:39:48 -07:00
2026-09-05 13:56:06 -07:00
2026-07-26 22:26:49 -07:00
2026-09-05 20:03:14 -07:00
2026-09-01 17:16:26 -07:00
2026-09-01 17:16:26 -07:00
2026-09-06 09:29:56 -07:00
2026-09-06 10:05:26 -07:00
2026-07-27 01:02:48 -07:00
2026-09-02 03:08:01 -07:00
2026-09-02 03:08:01 -07:00
2026-07-10 17:27:47 -07:00
2026-06-22 19:13:32 -07:00
2026-09-10 19:30:47 -07:00
2026-09-10 19:30:47 -07:00
2026-07-27 23:28:05 -07:00
2026-08-11 18:19:43 -07:00
2026-09-06 19:02:54 -07:00
2026-09-05 22:12:21 -07:00
2026-09-05 22:12:21 -07:00
2026-07-27 23:28:05 -07:00
2026-09-05 00:34:36 -07:00
2026-06-22 19:13:32 -07:00
2026-06-22 19:13:32 -07:00
2026-07-10 17:27:47 -07:00
2026-07-26 15:32:33 -07:00
2026-08-06 00:23:57 -07:00
2026-07-27 17:15:54 -07:00
2026-06-29 23:37:30 -07:00
2026-06-29 23:37:30 -07:00
2026-06-29 23:37:30 -07:00
2026-08-16 21:58:28 -07:00
2026-09-02 03:08:01 -07:00
2026-07-23 18:35:31 -07:00
2026-08-11 18:19:43 -07:00
2026-08-19 17:34:27 -07:00
2026-09-05 21:44:28 -07:00
2026-09-02 03:08:01 -07:00
2026-09-02 03:08:01 -07:00
2026-08-29 23:55:00 -07:00
2026-09-04 15:55:20 -07:00
2026-09-03 15:07:34 -07:00
2026-08-01 00:25:35 -07:00
2026-07-29 17:44:41 -07:00
2026-06-29 23:37:30 -07:00
2026-04-09 12:28:52 -07:00
2026-09-06 17:42:49 -07:00
2026-09-06 17:42:49 -07:00
2026-07-09 16:09:09 -07:00
2026-07-09 16:09:09 -07:00
2026-08-24 15:48:47 -07:00
2026-08-24 15:48:47 -07:00
2026-07-27 01:14:33 -07:00
2026-07-27 01:14:33 -07:00
2026-09-06 17:42:49 -07:00
2026-07-05 23:56:37 -07:00
2026-06-22 01:07:16 -07:00
2026-09-03 00:26:30 -07:00
2026-07-16 14:47:28 -07:00
2026-07-30 18:27:16 -07:00
2026-07-30 18:27:16 -07:00
2026-09-10 19:30:47 -07:00
2026-06-29 22:38:29 -07:00
2026-07-02 12:11:58 -07:00
2026-07-02 12:11:58 -07:00
2026-09-06 17:42:49 -07:00
2026-09-06 05:24:54 -07:00
2026-08-22 22:30:11 -07:00
2026-09-01 19:05:42 -07:00
2026-09-01 19:05:42 -07:00
2026-09-01 23:21:22 -07:00
2026-08-01 00:25:35 -07:00
2026-09-02 03:08:01 -07:00
2026-07-19 20:25:52 -07:00
2026-09-06 13:59:59 -07:00
2026-08-29 21:16:55 -07:00
2026-09-07 09:18:38 -07:00
2026-09-07 09:18:38 -07:00
2026-08-29 14:13:26 -07:00
2026-08-27 18:34:03 -07:00
2026-07-27 15:48:39 -07:00
2026-09-05 21:44:28 -07:00
2026-08-10 15:52:59 -07:00
2026-09-05 21:44:28 -07:00
2026-09-05 21:44:28 -07:00
2026-09-05 18:38:45 -07:00
2026-09-05 18:38:45 -07:00
2026-08-09 22:24:33 -07:00
2026-08-13 20:44:16 -07:00
2026-06-09 10:43:04 -07:00
2026-09-06 17:42:49 -07:00
2026-08-29 22:34:03 -07:00
2026-08-08 14:06:34 -07:00
2026-08-09 12:53:13 -07:00
2026-08-30 15:14:49 -07:00
2026-08-30 15:14:49 -07:00
2026-07-27 18:58:36 -07:00