Martin Vogel
eccd026782
perf(resolver): read a Dart barrel's exports as a walk reaches them
...
Every file that imports a barrel read the barrel's whole export list again, though one name's walk stops at the chain's bound of 128 libraries. With the barrel listing the project, that is files x exports: 16,000 libraries took 39.7 s in resolve.
Exports are now read when a walk first reaches them, and a walk stops once the bound is passed, since no further library can then be visited or change its answer. So `dart_export_graph_not_walked` is still what a name past the bound gets.
Left as it was: an export that a `show` or `hide` rules out costs a filter check per name and does not count toward the bound.
complexity_dart_barrel_exports_are_near_linear: 3.71 on the old read, 1.94 now.
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com >
2026-11-03 01:27:36 +01:00
..
2026-10-20 23:09:09 +02:00
2026-09-18 23:27:23 +02:00
2026-11-03 01:04:28 +01:00
2026-10-16 13:54:11 +03:00
2026-10-03 23:55:18 +02:00
2026-10-03 23:55:18 +02:00
2026-10-03 23:55:18 +02:00
2026-10-03 23:55:18 +02:00
2026-10-03 23:55:18 +02:00
2026-10-03 23:55:18 +02:00
2026-11-02 23:57:21 +01:00
2026-09-05 06:05:08 +02:00
2026-09-12 16:50:42 +02:00
2026-10-21 03:14:59 +02:00
2026-11-01 12:55:46 +01:00
2026-09-04 21:45:24 +07:00
2026-10-11 20:16:34 +02:00
2026-09-18 03:31:22 +02:00
2026-10-31 20:46:20 +01:00
2026-10-31 22:12:49 +01:00
2026-11-01 17:34:30 +01:00
2026-10-01 00:10:39 +02:00
2026-11-01 07:17:42 +01:00
2026-10-21 00:07:51 +02:00
2026-11-03 01:27:36 +01:00
2026-11-01 20:19:04 +01:00
2026-09-11 23:26:33 +02:00
2026-10-14 11:16:00 -05:00
2026-10-25 17:56:40 +01:00
2026-09-25 22:56:39 +02:00
2026-10-14 22:09:37 +02:00
2026-11-02 20:53:10 +01:00
2026-10-03 23:55:18 +02:00
2026-10-03 23:55:18 +02:00
2026-10-03 23:55:18 +02:00
2026-10-03 23:55:18 +02:00
2026-10-06 03:19:38 +02:00
2026-10-06 03:19:38 +02:00
2026-10-03 23:55:18 +02:00
2026-10-03 23:55:18 +02:00
2026-10-03 23:55:18 +02:00
2026-10-31 20:59:47 +01:00
2026-11-01 01:13:02 +01:00
2026-10-26 01:58:25 +01:00
2026-10-31 16:38:35 +01:00
2026-10-05 18:52:26 +02:00
2026-09-25 23:03:56 +02:00
2026-10-20 19:45:49 +02:00
2026-10-20 18:31:17 +02:00
2026-09-28 00:01:56 +02:00
2026-09-06 16:23:45 +02:00
2026-09-05 06:05:08 +02:00
2026-10-30 23:20:25 +01:00
2026-10-28 18:13:34 +01:00
2026-10-28 04:48:12 +01:00
2026-11-01 13:35:17 +01:00
2026-10-28 04:48:12 +01:00
2026-10-28 04:48:12 +01:00
2026-10-28 04:48:12 +01:00
2026-10-28 04:48:12 +01:00
2026-10-11 12:43:35 +02:00
2026-11-01 20:36:07 +01:00
2026-10-28 04:48:12 +01:00
2026-10-28 04:48:12 +01:00
2026-10-28 04:48:12 +01:00
2026-10-28 04:48:12 +01:00
2026-11-02 18:09:22 +01:00
2026-09-22 08:48:33 +02:00
2026-08-27 10:15:09 +02:00
2026-11-01 16:06:58 +01:00
2026-11-01 20:22:55 +01:00
2026-11-02 22:00:09 +01:00
2026-11-01 16:09:44 +01:00
2026-11-01 21:33:49 +01:00
2026-10-12 20:18:19 +02:00
2026-10-11 11:42:35 +02:00
2026-10-01 22:56:52 +02:00
2026-10-14 20:18:55 +02:00
2026-09-30 23:50:03 +02:00
2026-10-03 23:55:18 +02:00
2026-10-03 23:55:18 +02:00
2026-10-31 22:12:49 +01:00
2026-10-29 02:50:03 +01:00
2026-10-20 19:30:16 +02:00
2026-10-28 07:37:07 +01:00
2026-10-28 05:26:51 +01:00
2026-11-01 20:22:55 +01:00
2026-11-02 23:09:26 +01:00
2026-11-02 23:09:26 +01:00
2026-10-28 04:48:12 +01:00
2026-10-25 20:26:27 +01:00
2026-10-31 21:34:41 +01:00
2026-10-14 22:54:02 +02:00
2026-10-05 18:52:31 +02:00
2026-10-06 03:19:38 +02:00
2026-09-18 23:27:23 +02:00
2026-09-30 23:50:03 +02:00
2026-10-11 20:16:34 +02:00
2026-10-28 04:48:12 +01:00
2026-11-01 17:34:30 +01:00
2026-10-16 02:10:53 +02:00
2026-09-09 16:06:59 +08:00
2026-10-28 04:48:12 +01:00
2026-09-26 07:14:58 +02:00
2026-10-31 23:47:50 +01:00
2026-10-03 23:55:18 +02:00
2026-10-03 23:55:18 +02:00
2026-10-03 23:55:18 +02:00
2026-10-03 23:55:18 +02:00
2026-10-06 18:07:16 +02:00
2026-10-03 23:55:18 +02:00
2026-10-03 23:55:18 +02:00
2026-10-06 18:07:16 +02:00
2026-10-03 23:55:18 +02:00
2026-10-03 23:55:18 +02:00
2026-10-03 23:55:18 +02:00
2026-11-01 16:45:29 +01:00
2026-10-30 23:44:25 +01:00
2026-10-20 23:09:09 +02:00
2026-11-02 23:09:26 +01:00
2026-10-21 00:33:40 +02:00
2026-10-29 04:33:04 +01:00
2026-09-04 15:42:15 +02:00
2026-10-26 01:58:34 +01:00
2026-11-01 21:31:50 +01:00
2026-11-02 18:07:57 +01:00
2026-11-02 22:46:44 +01:00
2026-11-02 20:53:10 +01:00
2026-11-01 02:08:20 +01:00
2026-09-04 22:02:47 +02:00
2026-09-18 23:27:23 +02:00
2026-10-28 07:37:07 +01:00
2026-09-13 13:52:08 +03:00
2026-11-02 23:09:26 +01:00
2026-08-20 21:20:44 +02:00
2026-10-11 02:08:58 +02:00
2026-09-28 19:45:45 +02:00
2026-11-02 22:04:47 +01:00
2026-09-06 13:12:20 +08:00
2026-11-01 19:27:33 +01:00
2026-11-02 18:08:06 +01:00
2026-10-19 04:39:09 +02:00
2026-10-28 05:26:51 +01:00
2026-10-25 18:20:22 +01:00
2026-11-02 22:47:39 +01:00
2026-10-26 01:52:26 +01:00
2026-09-21 13:02:07 -05:00
2026-10-21 00:33:51 +02:00
2026-10-03 23:55:18 +02:00
2026-10-03 23:55:18 +02:00
2026-10-20 19:29:02 +02:00
2026-10-28 23:51:03 +01:00
2026-11-01 16:37:23 +01:00
2026-09-04 22:02:47 +02:00
2026-08-18 22:30:28 +02:00
2026-11-02 23:09:26 +01:00
2026-11-02 23:09:26 +01:00
2026-11-02 23:09:26 +01:00
2026-11-03 01:04:07 +01:00
2026-11-02 23:09:26 +01:00
2026-10-28 04:48:12 +01:00
2026-11-01 16:39:26 +01:00
2026-11-01 16:37:28 +01:00
2026-11-02 22:04:45 +01:00
2026-10-31 22:12:49 +01:00
2026-11-02 18:07:01 +01:00
2026-11-02 22:00:09 +01:00
2026-11-01 16:34:56 +01:00
2026-11-01 16:45:29 +01:00
2026-10-28 04:48:12 +01:00
2026-11-02 18:09:22 +01:00
2026-10-25 22:14:52 +01:00
2026-11-02 23:07:48 +01:00
2026-11-02 22:47:39 +01:00
2026-11-02 18:09:12 +01:00
2026-10-25 22:14:52 +01:00
2026-11-01 18:53:05 +01:00
2026-10-27 19:16:41 +01:00
2026-11-02 18:07:57 +01:00
2026-11-02 23:09:26 +01:00
2026-11-02 22:04:48 +01:00
2026-11-01 13:24:29 +01:00
2026-11-03 01:04:28 +01:00
2026-11-02 18:08:27 +01:00
2026-10-25 22:14:52 +01:00
2026-11-02 22:04:48 +01:00
2026-10-25 22:14:52 +01:00
2026-10-28 04:48:12 +01:00
2026-10-03 18:37:19 +02:00
2026-10-15 18:07:25 +02:00
2026-10-18 06:55:57 +02:00
2026-09-28 00:13:39 +02:00
2026-10-11 20:42:19 +02:00
2026-10-03 18:37:19 +02:00
2026-10-20 23:09:09 +02:00
2026-10-15 03:18:42 +02:00
2026-10-11 18:23:58 +02:00
2026-10-21 20:04:54 +02:00
2026-10-11 15:46:00 +02:00
2026-10-02 06:50:04 +02:00
2026-09-18 03:31:42 +02:00
2026-09-18 23:27:23 +02:00
2026-09-30 23:21:43 +02:00
2026-09-21 11:29:04 +03:00
2026-09-13 13:52:00 +03:00
2026-10-06 02:44:56 +02:00
2026-11-02 22:04:45 +01:00
2026-10-13 17:50:13 +08:00
2026-10-30 22:29:41 +01:00
2026-10-07 23:50:20 +00:00
2026-10-07 19:20:08 +02:00
2026-11-01 13:54:49 +01:00
2026-10-13 18:33:40 +02:00
2026-10-25 22:30:47 +01:00
2026-10-14 18:26:57 +02:00
2026-10-03 23:55:18 +02:00
2026-10-14 21:20:07 +02:00
2026-10-31 23:57:23 +01:00
2026-10-17 14:48:52 +02:00
2026-10-05 02:15:08 +02:00
2026-10-05 18:52:26 +02:00
2026-10-03 23:55:18 +02:00
2026-10-05 02:15:08 +02:00
2026-11-01 12:57:54 +01:00
2026-10-17 14:48:52 +02:00
2026-10-03 23:55:18 +02:00
2026-10-05 02:15:08 +02:00
2026-10-05 02:15:08 +02:00
2026-10-03 23:55:18 +02:00
2026-10-03 23:55:18 +02:00
2026-09-30 23:29:52 +02:00
2026-10-03 23:55:18 +02:00
2026-10-17 14:48:52 +02:00
2026-10-03 23:55:18 +02:00
2026-10-17 14:48:52 +02:00
2026-10-17 14:48:52 +02:00
2026-10-13 18:33:40 +02:00
2026-10-05 18:52:31 +02:00
2026-10-06 18:07:16 +02:00
2026-10-06 05:58:39 +02:00
2026-10-18 17:10:45 +02:00
2026-09-18 23:26:05 +02:00
2026-09-02 21:55:30 -04:00
2026-11-01 17:03:47 +01:00
2026-10-13 20:57:12 +02:00
2026-10-27 19:17:40 +01:00
2026-10-08 18:33:34 -06:00
2026-10-20 23:09:09 +02:00
2026-09-25 14:24:26 -05:00
2026-10-21 00:34:29 +02:00
2026-10-03 23:55:18 +02:00
2026-10-06 03:36:33 +02:00
2026-10-06 03:36:33 +02:00
2026-10-03 18:37:19 +02:00
2026-10-14 16:49:39 +09:00
2026-10-22 16:41:03 +05:30
2026-10-03 23:55:18 +02:00
2026-09-09 16:06:59 +08:00
2026-09-20 21:40:37 +02:00
2026-09-09 16:06:59 +08:00
2026-10-20 19:45:03 +02:00
2026-11-02 22:47:39 +01:00