Neil
406bd0e378
perf(relay): cache process-table descendant indexes ( #17646 )
...
* perf(relay): cache process-table descendant indexes
* fix(relay): keep the process-table index first-wins and narrow
Two defects in the memoized index this PR introduced.
- Restore the first-wins duplicate-pid tie-break the relay had as
`rows.find()`. A process whose argv contains a newline makes `ps` print a
continuation line that the lenient parser can accept as a spurious row
duplicating a real pid; that row always FOLLOWS the real one, so last-wins let
it capture the pane's foreground. The rule now lives in
`buildProcessTableIndex`, so the batched evidence resolver's `byPid.get(rootPid)`
root lookup gets the same semantics the subsystem had before indexing.
- Build only the two indexes a resolver reads. `byPgid`/`byTpgid` have no readers
repo-wide, and delegating to a four-map build made a one-pane relay pay more
per 500ms capture than the single `childrenByParent` map it replaced --
a regression in the majority topology, in a PR whose point is relay CPU.
Matches the same deletion in #17763 line for line so whichever merges second
resolves trivially.
2026-08-31 18:38:03 -07:00
..
2026-06-29 22:38:29 -07:00
2026-06-29 22:38:29 -07:00
2026-08-13 21:51:55 -07:00
2026-07-23 18:35:31 -07:00
2026-08-28 04:17:45 -07:00
2026-08-27 12:32:29 -07:00
2026-08-24 20:45:38 -07:00
2026-08-01 14:27:16 -07:00
2026-08-01 14:27:16 -07:00
2026-08-17 11:10:38 -07:00
2026-08-30 21:20:53 -07:00
2026-08-28 04:17:45 -07:00
2026-07-27 23:50:25 -07:00
2026-08-27 12:32:29 -07:00
2026-08-28 04:17:45 -07:00
2026-08-10 15:52:59 -07:00
2026-08-10 15:52:59 -07:00
2026-08-10 15:52:59 -07:00
2026-08-10 15:52:59 -07:00
2026-08-11 18:19:43 -07:00
2026-08-10 15:52:59 -07:00
2026-08-10 15:52:59 -07:00
2026-08-10 15:52:59 -07:00
2026-08-10 15:52:59 -07:00
2026-08-10 15:52:59 -07:00
2026-08-10 15:52:59 -07:00
2026-08-10 15:52:59 -07:00
2026-08-10 15:52:59 -07:00
2026-07-23 18:35:31 -07:00
2026-06-29 22:38:29 -07:00
2026-06-29 22:38:29 -07:00
2026-08-10 01:17:14 -07:00
2026-08-29 20:15:10 -07:00
2026-08-05 02:56:07 -07:00
2026-08-29 20:15:10 -07:00
2026-08-29 20:15:10 -07:00
2026-08-11 18:19:43 -07:00
2026-08-05 10:30:04 -07:00
2026-08-29 20:15:10 -07:00
2026-08-29 20:15:10 -07:00
2026-08-10 05:56:39 -07:00
2026-08-10 01:17:14 -07:00
2026-08-18 12:37:39 -07:00
2026-08-29 20:15:10 -07:00
2026-08-29 20:15:10 -07:00
2026-08-29 20:15:10 -07:00
2026-08-29 20:15:10 -07:00
2026-08-29 20:15:10 -07:00
2026-08-16 13:45:54 -07:00
2026-08-07 23:02:29 -07:00
2026-08-10 00:59:51 -07:00
2026-08-10 00:59:51 -07:00
2026-08-05 10:30:04 -07:00
2026-07-29 17:03:15 -07:00
2026-07-29 17:03:15 -07:00
2026-08-10 01:17:14 -07:00
2026-08-29 20:15:10 -07:00
2026-08-24 19:55:57 -07:00
2026-08-24 19:55:57 -07:00
2026-08-24 19:55:57 -07:00
2026-08-24 19:55:57 -07:00
2026-08-24 19:55:57 -07:00
2026-08-24 19:55:57 -07:00
2026-08-24 19:55:57 -07:00
2026-08-24 19:55:57 -07:00
2026-08-27 23:27:39 -07:00
2026-08-19 16:45:42 -07:00
2026-08-19 16:45:42 -07:00
2026-08-19 16:45:42 -07:00
2026-08-19 16:45:42 -07:00
2026-07-23 18:35:31 -07:00
2026-06-29 22:38:29 -07:00
2026-06-19 17:14:55 -07:00
2026-08-18 13:32:48 -07:00
2026-08-10 17:25:26 -07:00
2026-08-22 13:06:38 -07:00
2026-08-22 13:06:38 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-08-18 13:32:48 -07:00
2026-08-01 14:27:16 -07:00
2026-07-23 18:35:31 -07:00
2026-08-13 22:48:24 -07:00
2026-08-05 17:11:28 -07:00
2026-08-27 23:27:39 -07:00
2026-08-10 17:25:26 -07:00
2026-08-18 13:32:48 -07:00
2026-07-08 12:01:06 -07:00
2026-07-08 12:01:06 -07:00
2026-08-30 23:04:08 -07:00
2026-08-30 23:04:08 -07:00
2026-08-15 18:25:37 -07:00
2026-07-29 17:03:15 -07:00
2026-07-23 18:35:31 -07:00
2026-06-15 22:13:46 -07:00
2026-06-29 22:38:29 -07:00
2026-08-31 16:27:28 -07:00
2026-08-21 14:44:08 -07:00
2026-07-16 18:21:08 -07:00
2026-08-01 21:59:41 -07:00
2026-08-01 21:59:41 -07:00
2026-08-25 22:19:04 -07:00
2026-08-11 02:18:29 -07:00
2026-08-11 02:18:29 -07:00
2026-08-11 02:18:29 -07:00
2026-07-10 19:10:01 -07:00
2026-07-10 19:10:01 -07:00
2026-08-29 20:19:09 -07:00
2026-06-19 17:14:55 -07:00
2026-08-29 20:19:09 -07:00
2026-08-15 00:54:20 -07:00
2026-08-29 20:19:09 -07:00
2026-08-29 20:19:09 -07:00
2026-08-29 20:19:09 -07:00
2026-08-15 00:54:20 -07:00
2026-08-21 14:44:08 -07:00
2026-07-10 18:19:36 -07:00
2026-08-29 20:19:09 -07:00
2026-08-29 20:19:09 -07:00
2026-08-29 20:19:09 -07:00
2026-08-25 22:19:04 -07:00
2026-07-13 12:42:55 -07:00
2026-06-16 18:10:01 -07:00
2026-08-13 22:48:24 -07:00
2026-08-29 20:19:09 -07:00
2026-08-29 20:19:09 -07:00
2026-08-24 12:11:55 -07:00
2026-07-12 21:04:13 -07:00
2026-08-30 14:19:05 -07:00
2026-08-30 23:04:51 -07:00
2026-07-11 01:30:19 -07:00
2026-07-23 18:35:31 -07:00
2026-07-23 18:35:31 -07:00
2026-07-20 14:50:12 -07:00
2026-08-29 20:19:09 -07:00
2026-08-24 12:11:55 -07:00
2026-08-15 00:54:20 -07:00
2026-06-29 22:38:29 -07:00
2026-08-10 20:25:48 -07:00
2026-08-11 18:19:43 -07:00
2026-08-15 00:54:20 -07:00
2026-08-29 20:19:09 -07:00
2026-05-31 01:50:16 -07:00
2026-07-10 18:19:36 -07:00
2026-08-30 16:36:14 -07:00
2026-07-15 15:24:15 -07:00
2026-07-15 15:24:15 -07:00
2026-08-30 16:36:14 -07:00
2026-08-22 23:00:31 -07:00
2026-08-22 23:00:31 -07:00
2026-07-10 18:19:36 -07:00
2026-08-15 00:54:20 -07:00
2026-08-13 22:48:24 -07:00
2026-08-15 00:54:20 -07:00
2026-08-29 20:19:09 -07:00
2026-07-29 17:03:15 -07:00
2026-07-29 17:03:15 -07:00
2026-07-29 17:03:15 -07:00
2026-08-07 09:55:54 -07:00
2026-08-05 14:46:00 -07:00
2026-07-23 18:35:31 -07:00
2026-08-13 22:48:24 -07:00
2026-07-20 14:50:12 -07:00
2026-07-20 14:50:12 -07:00
2026-07-23 18:35:31 -07:00
2026-07-23 18:35:31 -07:00
2026-08-24 19:55:57 -07:00
2026-08-24 19:55:57 -07:00
2026-08-24 19:55:57 -07:00
2026-08-24 19:55:57 -07:00
2026-08-24 19:55:57 -07:00
2026-08-24 19:55:57 -07:00
2026-07-23 18:35:31 -07:00
2026-07-29 17:03:15 -07:00
2026-07-29 17:03:15 -07:00
2026-07-29 20:19:18 -07:00
2026-07-29 20:19:18 -07:00
2026-07-27 01:14:33 -07:00
2026-08-11 21:16:36 -07:00
2026-08-11 21:16:36 -07:00
2026-08-09 16:45:27 -07:00
2026-08-11 22:13:35 -07:00
2026-05-14 16:06:23 -07:00
2026-05-14 16:06:23 -07:00
2026-08-18 18:55:56 -07:00
2026-08-10 20:49:21 -07:00
2026-08-07 21:59:24 -07:00
2026-08-07 21:59:24 -07:00
2026-07-29 17:03:15 -07:00
2026-07-23 18:35:31 -07:00
2026-08-10 01:17:14 -07:00
2026-08-10 01:17:14 -07:00
2026-08-30 14:49:18 -07:00
2026-08-30 14:49:18 -07:00
2026-08-15 00:54:20 -07:00
2026-08-31 17:45:55 -07:00
2026-08-30 14:49:18 -07:00
2026-08-31 01:28:29 -07:00
2026-08-31 08:17:40 -07:00
2026-08-30 14:49:18 -07:00
2026-08-15 00:54:20 -07:00
2026-08-30 14:49:18 -07:00
2026-08-30 14:49:18 -07:00
2026-08-30 14:49:18 -07:00
2026-08-30 14:49:18 -07:00
2026-08-30 14:49:18 -07:00
2026-08-30 14:49:18 -07:00
2026-08-31 12:44:41 -07:00
2026-07-27 16:40:59 -07:00
2026-08-19 22:37:42 -07:00
2026-08-19 22:37:42 -07:00
2026-08-30 18:13:36 -07:00
2026-08-31 18:38:03 -07:00
2026-08-31 18:38:03 -07:00
2026-07-29 17:03:15 -07:00
2026-07-30 18:42:10 -07:00
2026-08-31 03:10:44 -07:00
2026-08-31 02:41:15 -07:00
2026-07-29 17:03:15 -07:00
2026-08-31 03:10:44 -07:00
2026-08-31 02:41:15 -07:00
2026-07-29 17:03:15 -07:00
2026-07-29 17:03:15 -07:00
2026-08-31 03:10:44 -07:00
2026-07-29 17:03:15 -07:00
2026-08-31 03:10:44 -07:00
2026-08-31 03:10:44 -07:00
2026-08-28 04:17:45 -07:00
2026-07-14 15:23:06 -07:00
2026-07-14 15:23:06 -07:00
2026-08-24 19:55:57 -07:00
2026-08-30 12:36:23 -07:00
2026-08-30 12:36:23 -07:00
2026-07-08 13:06:39 -07:00
2026-07-08 13:06:39 -07:00
2026-08-01 22:21:37 -07:00
2026-08-01 14:27:16 -07:00
2026-08-02 00:58:10 -07:00
2026-08-01 15:45:45 -07:00
2026-08-01 15:45:45 -07:00
2026-08-24 19:55:57 -07:00
2026-07-29 17:03:15 -07:00
2026-08-01 14:24:31 -07:00
2026-08-24 19:55:57 -07:00
2026-08-24 19:55:57 -07:00
2026-08-24 19:55:57 -07:00
2026-08-01 14:27:16 -07:00
2026-08-24 19:55:57 -07:00
2026-08-05 10:30:04 -07:00
2026-08-05 10:30:04 -07:00
2026-07-29 17:03:15 -07:00
2026-07-31 05:44:53 -07:00
2026-07-31 05:44:53 -07:00
2026-07-31 05:44:53 -07:00
2026-08-05 10:30:04 -07:00
2026-08-05 10:30:04 -07:00
2026-08-05 10:30:04 -07:00
2026-07-29 17:03:15 -07:00
2026-07-29 17:03:15 -07:00
2026-07-29 17:03:15 -07:00
2026-07-29 17:03:15 -07:00
2026-07-30 18:42:10 -07:00
2026-07-30 18:42:10 -07:00
2026-08-24 19:55:57 -07:00
2026-08-24 19:55:57 -07:00
2026-08-24 19:55:57 -07:00
2026-06-29 22:38:29 -07:00
2026-08-11 18:19:43 -07:00
2026-08-10 01:17:14 -07:00
2026-08-01 14:27:16 -07:00
2026-08-01 02:56:52 -07:00
2026-07-15 15:23:35 -07:00
2026-08-01 02:56:52 -07:00
2026-07-13 05:32:31 -07:00
2026-07-23 18:35:31 -07:00
2026-07-23 18:35:31 -07:00
2026-07-15 15:23:35 -07:00
2026-07-15 15:23:35 -07:00
2026-07-15 15:23:35 -07:00
2026-07-15 15:23:35 -07:00
2026-07-15 15:23:35 -07:00
2026-07-23 18:35:31 -07:00
2026-07-15 15:23:35 -07:00
2026-08-24 19:55:57 -07:00
2026-08-07 23:02:29 -07:00
2026-08-07 23:02:29 -07:00
2026-08-07 23:02:29 -07:00
2026-07-29 11:31:35 -07:00
2026-07-29 11:31:35 -07:00
2026-07-08 13:59:42 -07:00
2026-07-08 13:59:42 -07:00
2026-07-26 12:50:05 -07:00
2026-07-26 12:50:05 -07:00
2026-08-28 04:17:45 -07:00
2026-08-28 04:17:45 -07:00
2026-07-10 12:56:17 -07:00
2026-07-10 12:56:17 -07:00
2026-08-17 00:55:04 -07:00
2026-08-21 13:15:46 -07:00
2026-08-21 13:15:46 -07:00
2026-08-05 02:56:07 -07:00
2026-08-05 10:30:04 -07:00
2026-08-05 10:30:04 -07:00
2026-08-05 10:30:04 -07:00
2026-07-30 18:42:10 -07:00
2026-07-31 05:44:53 -07:00
2026-07-16 21:32:13 -07:00
2026-07-20 14:50:12 -07:00
2026-07-20 14:50:12 -07:00
2026-08-30 14:49:18 -07:00
2026-08-17 22:39:02 -07:00
2026-08-18 03:12:47 -07:00
2026-08-18 03:12:47 -07:00
2026-08-18 18:55:56 -07:00
2026-07-05 23:56:37 -07:00
2026-07-23 18:35:31 -07:00
2026-07-23 18:35:31 -07:00
2026-07-27 18:50:52 -07:00
2026-07-27 18:50:52 -07:00
2026-08-29 20:06:41 -07:00
2026-07-10 00:19:45 -07:00
2026-08-01 14:27:16 -07:00
2026-08-25 15:36:51 -07:00
2026-07-23 18:35:31 -07:00
2026-07-23 18:35:31 -07:00
2026-07-25 02:30:59 -07:00
2026-08-09 16:45:27 -07:00