silverwind and GitHub
075ff8f516
perf(git): speed up activity top authors and subdirectory listings ( #39526 )
...
Speeds up two slow git paths. Results match `main` apart
from the `log.follow` fix.
- Activity top authors skip `--numstat` and an unused `rev-list
--count`, they only need names and emails
- Subdirectory listings pass only the directory as pathspec, which
already matches all its entries
- Directory listings pass `--no-follow` to `git log`, a configured
`log.follow` disabled parent rewriting and gave wrong last commits
| Benchmark | main | PR | Change |
|---|--:|--:|--:|
| Top authors, gitea, 1 month | 632 ms | 21 ms | -97% |
| Top authors, gitea, 1 year | 3216 ms | 68 ms | -98% |
| Top authors, tea | 62 ms | 12 ms | -80% |
| Listing, git `Documentation/technical` | 189 ms | 91 ms | -52% |
| Listing, gitea `options/license` | 329 ms | 208 ms | -37% |
| Listing, gitea `templates/repo` | 294 ms | 223 ms | -24% |
Tested with unit and sqlite integration tests in default and `gogit`
builds on git 2.25 and 2.56, and by comparing listing results and cache
writes with `main` on randomized histories and the gitea, tea and git
repos. Benchmarks are medians of 8 interleaved macOS runs.
2026-10-01 15:51:07 +00:00
..
2026-07-28 17:04:22 +00:00
2026-08-22 08:59:37 +00:00
2026-10-01 10:01:45 +00:00
2026-07-23 17:42:55 +00:00
2023-02-04 10:30:43 +08:00
2026-08-26 17:24:07 +02:00
2026-07-28 17:04:22 +00:00
2026-07-19 07:32:00 +00:00
2026-09-02 19:32:33 +00:00
2026-08-11 16:33:15 +00:00
2026-08-11 16:33:15 +00:00
2026-09-19 12:41:41 +00:00
2026-09-19 12:41:41 +00:00
2026-09-19 12:41:41 +00:00
2026-07-17 18:44:31 +08:00
2026-07-28 17:04:22 +00:00
2026-08-07 02:44:55 +00:00
2026-08-07 02:44:55 +00:00
2026-07-28 17:04:22 +00:00
2026-07-28 17:04:22 +00:00
2026-07-21 12:18:00 +00:00
2026-07-28 17:04:22 +00:00
2026-07-23 01:22:26 +00:00
2026-07-23 01:22:26 +00:00
2026-07-23 01:22:26 +00:00
2025-05-09 16:17:08 +00:00
2026-07-20 16:07:38 +00:00
2026-07-20 16:07:38 +00:00
2026-09-29 11:56:51 +00:00
2026-08-05 00:17:07 +08:00
2026-07-20 16:07:38 +00:00
2026-07-20 16:07:38 +00:00
2026-08-09 10:25:06 +00:00
2026-08-05 00:17:07 +08:00
2026-07-28 19:12:53 +08:00
2026-08-05 00:17:07 +08:00
2026-08-05 00:17:07 +08:00
2026-09-06 11:27:04 +02:00
2026-09-06 11:27:04 +02:00
2026-07-15 17:30:01 +00:00
2026-07-28 17:04:22 +00:00
2025-07-30 07:08:59 +00:00
2026-05-26 15:49:31 -07:00
2026-07-17 18:44:31 +08:00
2026-09-19 12:41:41 +00:00
2026-09-19 13:04:53 +00:00
2026-07-20 16:07:38 +00:00
2026-07-20 16:07:38 +00:00
2026-07-20 16:07:38 +00:00
2024-11-20 19:26:12 +00:00
2024-11-20 19:26:12 +00:00
2026-06-22 18:29:06 +00:00
2026-09-29 20:31:50 +02:00
2025-06-18 01:48:09 +00:00
2026-09-12 11:56:25 +00:00
2026-09-15 10:59:34 +02:00
2026-09-23 14:34:19 +00:00
2026-07-23 01:22:26 +00:00
2026-07-20 16:07:38 +00:00
2026-07-20 16:07:38 +00:00
2026-08-26 18:35:44 +00:00
2026-07-28 17:04:22 +00:00
2026-08-25 12:02:31 +00:00
2026-08-29 19:54:07 +00:00
2026-09-24 09:46:24 +00:00
2026-09-24 09:46:24 +00:00
2026-07-23 14:31:29 +00:00
2026-08-21 07:52:23 +00:00
2026-08-21 07:52:23 +00:00
2026-08-25 12:02:31 +00:00
2026-08-05 00:17:07 +08:00
2026-08-05 00:17:07 +08:00
2026-08-05 00:17:07 +08:00
2026-07-23 17:42:55 +00:00
2026-10-01 15:51:07 +00:00
2026-07-23 01:22:26 +00:00
2026-07-20 16:07:38 +00:00
2026-07-20 16:07:38 +00:00
2026-07-20 16:07:38 +00:00
2026-09-29 11:56:51 +00:00
2026-08-05 00:17:07 +08:00
2026-09-19 12:41:41 +00:00
2024-01-19 17:05:02 +01:00
2026-09-19 12:41:41 +00:00
2026-09-19 12:41:41 +00:00
2026-04-14 12:03:26 +00:00
2026-05-13 09:00:41 +02:00
2026-05-26 15:49:31 -07:00
2026-07-23 01:22:26 +00:00
2026-09-29 20:31:50 +02:00
2026-08-28 14:17:01 -07:00
2026-09-19 12:41:41 +00:00
2026-09-15 10:59:34 +02:00
2026-09-15 10:59:34 +02:00
2026-10-01 11:04:41 +00:00
2026-07-28 17:04:22 +00:00
2026-07-20 16:07:38 +00:00
2026-07-28 17:04:22 +00:00
2025-12-25 19:26:23 -08:00
2026-07-17 18:44:31 +08:00
2026-07-28 17:04:22 +00:00
2026-10-01 11:04:41 +00:00
2026-07-20 16:07:38 +00:00
2026-09-19 12:41:41 +00:00
2026-09-19 13:04:53 +00:00
2026-09-26 17:38:42 +00:00
2026-09-26 17:38:42 +00:00
2026-07-23 01:22:26 +00:00
2026-08-25 12:02:31 +00:00
2026-07-28 17:04:22 +00:00
2026-07-23 17:42:55 +00:00
2026-09-19 13:04:53 +00:00
2026-09-19 13:04:53 +00:00
2026-07-20 18:03:28 +00:00
2026-07-20 16:07:38 +00:00
2026-07-28 17:04:22 +00:00
2026-07-20 16:07:38 +00:00
2026-10-01 15:51:07 +00:00
2026-10-01 15:51:07 +00:00
2026-07-17 18:44:31 +08:00
2026-09-19 13:04:53 +00:00
2026-08-22 08:59:37 +00:00
2026-09-19 13:04:53 +00:00
2026-09-29 14:43:36 +02:00
2026-07-20 16:07:38 +00:00
2026-07-28 17:04:22 +00:00
2026-07-20 16:07:38 +00:00
2026-09-29 14:43:36 +02:00
2024-02-09 11:02:53 +08:00
2026-09-23 14:34:19 +00:00
2025-03-31 01:53:48 -04:00
2026-05-26 15:49:31 -07:00
2026-07-23 01:22:26 +00:00
2026-07-21 12:18:00 +00:00
2026-07-23 01:22:26 +00:00
2026-05-07 16:19:45 +02:00
2026-08-22 08:59:37 +00:00
2026-07-15 17:30:01 +00:00
2026-07-15 17:30:01 +00:00
2026-07-15 17:30:01 +00:00
2026-07-28 17:04:22 +00:00
2026-05-13 09:00:41 +02:00
2026-07-15 17:30:01 +00:00
2026-04-14 12:03:26 +00:00
2026-07-28 17:04:22 +00:00
2026-04-14 12:03:26 +00:00
2026-07-17 18:44:31 +08:00
2026-07-15 17:30:01 +00:00
2026-07-28 17:04:22 +00:00
2026-07-28 17:04:22 +00:00
2026-07-20 16:07:38 +00:00
2025-07-30 07:08:59 +00:00
2026-08-25 12:02:31 +00:00