Software Forge Performance Index
Software Forge Performance Index
This webpage collects performance information about various hosted software
development services. The reports are updated weekly, most recently on
April 9, 2023 at 22:15 UTC, and were generated with
Lighthouse
6.3.0.
Patches welcome!
Disclaimer: This website is maintained by SourceHut.
Expand for details on methodology
We ran Lighthouse 6.3.0 on Alpine Linux x86_64, with the
following command line:
lighthouse <url> \
--only-categories=performance,accessibility \
--profile=desktop \
--throttling.cpuSlowdownMultiplier=1
The desktop profile is used because it's rare that a developer is coding
on a mobile device — and some forges have separate mobile sites, so
a separate test suite would be warranted.
We left the throttling settings at the Lighthouse default, because it's
less rare that a developer is tethered to their phone or working from a
community with less privileged internet access. The simulated latency
also helps to reduce the variable impact of real-world latency.
Additionally, simulating a low-bandwidth connection helps to draw out the
differences between services more clearly. This controls for network
conditions; the same tests have been run from various datacenters with
various degrees of favorability to each hosting provider with no
discernible change in the results.
CPU throttling is disabled to offset the effects of not having a GPU
available in our testing environment. If you run these tests locally, it
is recommended that you remove this constraint.
The
source code
is available if you wish to run these benchmarks on your own system; it
takes about an hour.
All performance results
Browsing Git repositories
Summary page
Page tested |
Performance |
Accessibility |
Speed Index |
FCP |
FMP |
First Idle |
TTI |
Max FID |
Full report |
---|
SourceHut
|
4 requests
|
34 KiB
|
100
|
100
|
1.1 s
|
1.1 s
|
1.1 s
|
1.1 s
|
1.1 s
|
20 ms
|
HTML
•
JSON
•
stderr
|
GitHub
|
78 requests
|
573 KiB
|
86
|
96
|
3.1 s
|
2.5 s
|
2.5 s
|
4.2 s
|
4.7 s
|
100 ms
|
HTML
•
JSON
•
stderr
|
Codeberg
|
21 requests
|
1029 KiB
|
81
|
73
|
4.7 s
|
2.9 s
|
2.9 s
|
7.1 s
|
7.1 s
|
110 ms
|
HTML
•
JSON
•
stderr
|
Pagure
|
20 requests
|
721 KiB
|
79
|
67
|
2.5 s
|
2.1 s
|
4.0 s
|
4.0 s
|
4.0 s
|
20 ms
|
HTML
•
JSON
•
stderr
|
GitLab
|
55 requests
|
1529 KiB
|
63
|
77
|
4.8 s
|
1.7 s
|
1.7 s
|
1.7 s
|
10.1 s
|
160 ms
|
HTML
•
JSON
•
stderr
|
Bitbucket
|
80 requests
|
2176 KiB
|
18
|
100
|
11.3 s
|
10.3 s
|
11.8 s
|
11.8 s
|
14.9 s
|
400 ms
|
HTML
•
JSON
•
stderr
|
Tree (best case)
Page tested |
Performance |
Accessibility |
Speed Index |
FCP |
FMP |
First Idle |
TTI |
Max FID |
Full report |
---|
SourceHut
|
4 requests
|
33 KiB
|
100
|
94
|
1.1 s
|
1.1 s
|
1.1 s
|
1.1 s
|
1.1 s
|
20 ms
|
HTML
•
JSON
•
stderr
|
Pagure
|
19 requests
|
519 KiB
|
86
|
96
|
2.5 s
|
2.5 s
|
3.0 s
|
3.0 s
|
3.0 s
|
20 ms
|
HTML
•
JSON
•
stderr
|
Codeberg
|
20 requests
|
1012 KiB
|
78
|
83
|
5.1 s
|
3.0 s
|
3.0 s
|
7.2 s
|
7.3 s
|
100 ms
|
HTML
•
JSON
•
stderr
|
GitHub
|
63 requests
|
494 KiB
|
76
|
98
|
2.8 s
|
2.5 s
|
2.5 s
|
4.5 s
|
4.9 s
|
60 ms
|
HTML
•
JSON
•
stderr
|
GitLab
|
53 requests
|
1482 KiB
|
64
|
81
|
4.4 s
|
1.7 s
|
1.7 s
|
1.7 s
|
9.6 s
|
210 ms
|
HTML
•
JSON
•
stderr
|
Bitbucket
|
79 requests
|
2173 KiB
|
21
|
100
|
11.3 s
|
10.3 s
|
11.7 s
|
11.7 s
|
14.3 s
|
430 ms
|
HTML
•
JSON
•
stderr
|
Tree (worst case)
Page tested |
Performance |
Accessibility |
Speed Index |
FCP |
FMP |
First Idle |
TTI |
Max FID |
Full report |
---|
SourceHut
|
4 requests
|
86 KiB
|
94
|
?
|
5.1 s
|
1.4 s
|
1.5 s
|
1.5 s
|
1.5 s
|
110 ms
|
HTML
•
JSON
•
stderr
|
GitHub
*
|
61 requests
|
515 KiB
|
82
|
98
|
4.1 s
|
2.6 s
|
2.6 s
|
5.6 s
|
5.9 s
|
460 ms
|
HTML
•
JSON
•
stderr
|
Pagure
|
19 requests
|
1252 KiB
|
55
|
96
|
5.6 s
|
5.6 s
|
6.1 s
|
6.1 s
|
6.1 s
|
20 ms
|
HTML
•
JSON
•
stderr
|
GitLab
|
62 requests
|
1560 KiB
|
32
|
81
|
2.7 s
|
1.8 s
|
2.8 s
|
2.8 s
|
12.4 s
|
560 ms
|
HTML
•
JSON
•
stderr
|
Bitbucket
*
|
80 requests
|
2187 KiB
|
9
|
100
|
11.3 s
|
10.3 s
|
11.7 s
|
11.7 s
|
14.5 s
|
800 ms
|
HTML
•
JSON
•
stderr
|
Codeberg
|
20 requests
|
3606 KiB
|
6
|
83
|
19.1 s
|
16.0 s
|
16.0 s
|
21.8 s
|
21.9 s
|
730 ms
|
HTML
•
JSON
•
stderr
|
Notes
- * Bitbucket: Trees with more than 500 entries are truncated.
- * GitHub: Trees with more than 1,000 entries are truncated.
Log (best case)
Page tested |
Performance |
Accessibility |
Speed Index |
FCP |
FMP |
First Idle |
TTI |
Max FID |
Full report |
---|
SourceHut
|
4 requests
|
37 KiB
|
100
|
?
|
1.1 s
|
1.1 s
|
1.1 s
|
1.1 s
|
1.1 s
|
20 ms
|
HTML
•
JSON
•
stderr
|
GitHub
|
65 requests
|
485 KiB
|
88
|
100
|
3.6 s
|
2.5 s
|
2.5 s
|
4.6 s
|
4.9 s
|
120 ms
|
HTML
•
JSON
•
stderr
|
Codeberg
|
25 requests
|
1423 KiB
|
73
|
79
|
5.1 s
|
3.3 s
|
3.3 s
|
7.7 s
|
7.8 s
|
140 ms
|
HTML
•
JSON
•
stderr
|
Pagure
|
69 requests
|
693 KiB
|
66
|
78
|
23.8 s
|
3.3 s
|
4.4 s
|
4.4 s
|
4.4 s
|
50 ms
|
HTML
•
JSON
•
stderr
|
GitLab
|
48 requests
|
1273 KiB
|
60
|
76
|
5.0 s
|
1.3 s
|
2.8 s
|
2.8 s
|
8.8 s
|
150 ms
|
HTML
•
JSON
•
stderr
|
Bitbucket
|
53 requests
|
1818 KiB
|
27
|
100
|
10.2 s
|
10.2 s
|
10.6 s
|
10.6 s
|
12.1 s
|
340 ms
|
HTML
•
JSON
•
stderr
|
Log (worst case)
Page tested |
Performance |
Accessibility |
Speed Index |
FCP |
FMP |
First Idle |
TTI |
Max FID |
Full report |
---|
SourceHut
|
4 requests
|
43 KiB
|
100
|
?
|
1.6 s
|
1.1 s
|
1.1 s
|
1.1 s
|
1.1 s
|
20 ms
|
HTML
•
JSON
•
stderr
|
GitHub
|
63 requests
|
495 KiB
|
90
|
100
|
3.2 s
|
2.7 s
|
2.7 s
|
4.2 s
|
4.3 s
|
100 ms
|
HTML
•
JSON
•
stderr
|
Codeberg
|
20 requests
|
1171 KiB
|
65
|
79
|
6.3 s
|
3.6 s
|
3.6 s
|
8.0 s
|
8.1 s
|
130 ms
|
HTML
•
JSON
•
stderr
|
GitLab
|
67 requests
|
1293 KiB
|
57
|
79
|
6.0 s
|
2.0 s
|
2.8 s
|
2.8 s
|
8.6 s
|
150 ms
|
HTML
•
JSON
•
stderr
|
Bitbucket
|
63 requests
|
1819 KiB
|
21
|
98
|
10.6 s
|
10.4 s
|
10.7 s
|
10.7 s
|
12.8 s
|
380 ms
|
HTML
•
JSON
•
stderr
|
Pagure
|
n/a | n/a |
The page provided is not HTML (served as MIME type ).
|
HTML
•
JSON
•
stderr
|
Commit
Page tested |
Performance |
Accessibility |
Speed Index |
FCP |
FMP |
First Idle |
TTI |
Max FID |
Full report |
---|
SourceHut
|
4 requests
|
36 KiB
|
100
|
83
|
1.1 s
|
1.1 s
|
1.1 s
|
1.1 s
|
1.1 s
|
20 ms
|
HTML
•
JSON
•
stderr
|
GitHub
|
66 requests
|
500 KiB
|
90
|
98
|
3.2 s
|
2.5 s
|
2.5 s
|
4.4 s
|
4.8 s
|
90 ms
|
HTML
•
JSON
•
stderr
|
Pagure
|
24 requests
|
797 KiB
|
73
|
72
|
2.9 s
|
2.1 s
|
3.5 s
|
5.3 s
|
5.7 s
|
160 ms
|
HTML
•
JSON
•
stderr
|
GitLab
|
50 requests
|
1501 KiB
|
66
|
83
|
3.6 s
|
1.7 s
|
2.9 s
|
2.9 s
|
10.4 s
|
160 ms
|
HTML
•
JSON
•
stderr
|
Codeberg
|
21 requests
|
1230 KiB
|
59
|
84
|
5.9 s
|
3.1 s
|
3.1 s
|
7.4 s
|
7.9 s
|
90 ms
|
HTML
•
JSON
•
stderr
|
Bitbucket
|
47 requests
|
18628 KiB
|
38
|
92
|
27.9 s
|
2.7 s
|
2.7 s
|
5.1 s
|
94.0 s
|
540 ms
|
HTML
•
JSON
•
stderr
|
Source file (best case)
Source file (worst case)
Blame (best case)
Page tested |
Performance |
Accessibility |
Speed Index |
FCP |
FMP |
First Idle |
TTI |
Max FID |
Full report |
---|
SourceHut
|
5 requests
|
64 KiB
|
100
|
94
|
2.3 s
|
1.2 s
|
1.2 s
|
1.2 s
|
1.2 s
|
20 ms
|
HTML
•
JSON
•
stderr
|
GitHub
|
72 requests
|
550 KiB
|
86
|
98
|
3.4 s
|
2.7 s
|
3.7 s
|
4.9 s
|
5.2 s
|
400 ms
|
HTML
•
JSON
•
stderr
|
GitLab
|
33 requests
|
1263 KiB
|
69
|
87
|
3.4 s
|
1.8 s
|
1.8 s
|
1.8 s
|
8.4 s
|
130 ms
|
HTML
•
JSON
•
stderr
|
Bitbucket
|
38 requests
|
18668 KiB
|
46
|
85
|
24.7 s
|
2.9 s
|
3.2 s
|
5.3 s
|
94.2 s
|
300 ms
|
HTML
•
JSON
•
stderr
|
Pagure
|
21 requests
|
1220 KiB
|
44
|
83
|
9.6 s
|
4.2 s
|
5.4 s
|
5.7 s
|
5.8 s
|
520 ms
|
HTML
•
JSON
•
stderr
|
Codeberg
|
24 requests
|
2164 KiB
|
22
|
84
|
8.1 s
|
7.4 s
|
7.4 s
|
12.0 s
|
12.3 s
|
320 ms
|
HTML
•
JSON
•
stderr
|
Blame (worst case)
Page tested |
Performance |
Accessibility |
Speed Index |
FCP |
FMP |
First Idle |
TTI |
Max FID |
Full report |
---|
GitLab
|
33 requests
|
1298 KiB
|
52
|
89
|
22.3 s
|
2.0 s
|
2.1 s
|
2.1 s
|
8.8 s
|
190 ms
|
HTML
•
JSON
•
stderr
|
Bitbucket
|
n/a | n/a |
Lighthouse was unable to reliably load the page you requested. Make sure you are testing the correct URL and that the server is properly responding to all requests. (Status code: 500)
|
HTML
•
JSON
•
stderr
|
Codeberg
|
n/a | n/a |
Something went wrong with recording the trace over your page load. Please run Lighthouse again. (NO_FCP)
|
HTML
•
JSON
•
stderr
|
Pagure
|
n/a | n/a |
An error occured, see the log for more details.
|
HTML
•
JSON
•
stderr
|
SourceHut
|
n/a | n/a |
The page provided is not HTML (served as MIME type ).
|
HTML
•
JSON
•
stderr
|
Notes
- * GitHub: The page loads, but shows "This blame took too long to generate". GitHub has been omitted from the test results.
Browsing tickets/issues
Browsing
Page tested |
Performance |
Accessibility |
Speed Index |
FCP |
FMP |
First Idle |
TTI |
Max FID |
Full report |
---|
SourceHut
|
4 requests
|
36 KiB
|
100
|
89
|
1.1 s
|
1.1 s
|
1.1 s
|
1.1 s
|
1.1 s
|
20 ms
|
HTML
•
JSON
•
stderr
|
GitHub
|
54 requests
|
449 KiB
|
94
|
98
|
3.0 s
|
2.4 s
|
2.4 s
|
4.0 s
|
4.1 s
|
110 ms
|
HTML
•
JSON
•
stderr
|
Pagure
|
18 requests
|
631 KiB
|
80
|
80
|
4.2 s
|
3.1 s
|
3.6 s
|
3.6 s
|
3.6 s
|
30 ms
|
HTML
•
JSON
•
stderr
|
Bitbucket
|
32 requests
|
567 KiB
|
59
|
85
|
4.8 s
|
4.8 s
|
5.0 s
|
5.2 s
|
5.8 s
|
180 ms
|
HTML
•
JSON
•
stderr
|
GitLab
|
50 requests
|
1381 KiB
|
46
|
90
|
4.5 s
|
1.7 s
|
3.1 s
|
3.1 s
|
9.5 s
|
500 ms
|
HTML
•
JSON
•
stderr
|
Codeberg
|
602 requests
|
14782 KiB
|
43
|
82
|
6.6 s
|
4.9 s
|
4.9 s
|
8.9 s
|
9.0 s
|
250 ms
|
HTML
•
JSON
•
stderr
|
Search
Page tested |
Performance |
Accessibility |
Speed Index |
FCP |
FMP |
First Idle |
TTI |
Max FID |
Full report |
---|
SourceHut
|
4 requests
|
36 KiB
|
100
|
89
|
1.1 s
|
1.1 s
|
1.1 s
|
1.1 s
|
1.1 s
|
20 ms
|
HTML
•
JSON
•
stderr
|
GitHub
|
54 requests
|
450 KiB
|
91
|
98
|
3.1 s
|
2.4 s
|
2.4 s
|
4.2 s
|
4.5 s
|
110 ms
|
HTML
•
JSON
•
stderr
|
Pagure
|
20 requests
|
619 KiB
|
73
|
80
|
6.5 s
|
3.0 s
|
3.5 s
|
3.5 s
|
3.5 s
|
40 ms
|
HTML
•
JSON
•
stderr
|
Bitbucket
|
32 requests
|
567 KiB
|
58
|
85
|
5.0 s
|
4.9 s
|
4.9 s
|
5.4 s
|
5.9 s
|
290 ms
|
HTML
•
JSON
•
stderr
|
GitLab
|
50 requests
|
1381 KiB
|
43
|
90
|
2.8 s
|
1.8 s
|
1.8 s
|
1.8 s
|
9.3 s
|
620 ms
|
HTML
•
JSON
•
stderr
|
Codeberg
|
602 requests
|
14753 KiB
|
41
|
82
|
6.7 s
|
4.7 s
|
5.6 s
|
9.0 s
|
9.0 s
|
220 ms
|
HTML
•
JSON
•
stderr
|
Details and comments
Page tested |
Performance |
Accessibility |
Speed Index |
FCP |
FMP |
First Idle |
TTI |
Max FID |
Full report |
---|
SourceHut
|
4 requests
|
49 KiB
|
100
|
91
|
2.4 s
|
1.2 s
|
1.2 s
|
1.2 s
|
1.2 s
|
20 ms
|
HTML
•
JSON
•
stderr
|
GitHub
|
84 requests
|
709 KiB
|
78
|
92
|
5.2 s
|
3.0 s
|
3.0 s
|
4.8 s
|
5.7 s
|
220 ms
|
HTML
•
JSON
•
stderr
|
Pagure
|
40 requests
|
3540 KiB
|
67
|
87
|
3.5 s
|
3.5 s
|
4.1 s
|
4.1 s
|
4.1 s
|
40 ms
|
HTML
•
JSON
•
stderr
|
Bitbucket
|
32 requests
|
567 KiB
|
60
|
85
|
4.9 s
|
4.7 s
|
4.9 s
|
5.8 s
|
5.8 s
|
160 ms
|
HTML
•
JSON
•
stderr
|
Codeberg
|
37 requests
|
2396 KiB
|
38
|
72
|
8.1 s
|
5.5 s
|
5.5 s
|
5.5 s
|
11.5 s
|
240 ms
|
HTML
•
JSON
•
stderr
|
GitLab
|
85 requests
|
2336 KiB
|
32
|
79
|
3.4 s
|
1.9 s
|
1.9 s
|
1.9 s
|
14.7 s
|
1,010 ms
|
HTML
•
JSON
•
stderr
|
Code review
Browsing patches
Page tested |
Performance |
Accessibility |
Speed Index |
FCP |
FMP |
First Idle |
TTI |
Max FID |
Full report |
---|
SourceHut
|
4 requests
|
34 KiB
|
100
|
83
|
1.1 s
|
1.1 s
|
1.1 s
|
1.1 s
|
1.1 s
|
20 ms
|
HTML
•
JSON
•
stderr
|
GitHub
|
53 requests
|
448 KiB
|
89
|
98
|
3.4 s
|
2.3 s
|
2.3 s
|
4.1 s
|
4.5 s
|
90 ms
|
HTML
•
JSON
•
stderr
|
Pagure
|
18 requests
|
572 KiB
|
82
|
82
|
4.0 s
|
2.6 s
|
3.0 s
|
3.0 s
|
3.0 s
|
30 ms
|
HTML
•
JSON
•
stderr
|
Codeberg
|
150 requests
|
5704 KiB
|
58
|
82
|
5.5 s
|
4.3 s
|
4.3 s
|
8.3 s
|
8.3 s
|
190 ms
|
HTML
•
JSON
•
stderr
|
GitLab
|
52 requests
|
1531 KiB
|
55
|
79
|
5.7 s
|
1.7 s
|
1.7 s
|
1.7 s
|
10.6 s
|
210 ms
|
HTML
•
JSON
•
stderr
|
Bitbucket
|
n/a | n/a |
Lighthouse was unable to reliably load the page you requested. Make sure you are testing the correct URL and that the server is properly responding to all requests. (Status code: 404)
|
HTML
•
JSON
•
stderr
|
Patch discussion
Page tested |
Performance |
Accessibility |
Speed Index |
FCP |
FMP |
First Idle |
TTI |
Max FID |
Full report |
---|
SourceHut
|
4 requests
|
83 KiB
|
99
|
?
|
3.2 s
|
1.4 s
|
1.4 s
|
1.4 s
|
1.4 s
|
20 ms
|
HTML
•
JSON
•
stderr
|
GitHub
|
83 requests
|
694 KiB
|
68
|
100
|
6.0 s
|
3.1 s
|
3.1 s
|
5.6 s
|
5.9 s
|
200 ms
|
HTML
•
JSON
•
stderr
|
Codeberg
|
23 requests
|
1381 KiB
|
60
|
78
|
7.4 s
|
3.4 s
|
3.4 s
|
8.6 s
|
8.9 s
|
130 ms
|
HTML
•
JSON
•
stderr
|
Pagure
|
40 requests
|
3613 KiB
|
51
|
85
|
7.6 s
|
4.8 s
|
4.8 s
|
4.8 s
|
4.9 s
|
80 ms
|
HTML
•
JSON
•
stderr
|
GitLab
|
76 requests
|
2226 KiB
|
36
|
84
|
5.1 s
|
1.9 s
|
1.9 s
|
1.9 s
|
13.3 s
|
610 ms
|
HTML
•
JSON
•
stderr
|
Bitbucket
|
134 requests
|
3991 KiB
|
19
|
?
|
8.2 s
|
2.2 s
|
15.5 s
|
15.5 s
|
25.9 s
|
840 ms
|
HTML
•
JSON
•
stderr
|
Patch diff
Page tested |
Performance |
Accessibility |
Speed Index |
FCP |
FMP |
First Idle |
TTI |
Max FID |
Full report |
---|
SourceHut
*
|
4 requests
|
83 KiB
|
99
|
?
|
3.2 s
|
1.4 s
|
1.4 s
|
1.4 s
|
1.4 s
|
20 ms
|
HTML
•
JSON
•
stderr
|
GitHub
|
78 requests
|
587 KiB
|
83
|
97
|
4.7 s
|
2.7 s
|
2.7 s
|
5.3 s
|
5.6 s
|
180 ms
|
HTML
•
JSON
•
stderr
|
Codeberg
|
22 requests
|
1553 KiB
|
53
|
83
|
6.4 s
|
4.5 s
|
4.5 s
|
9.0 s
|
9.0 s
|
150 ms
|
HTML
•
JSON
•
stderr
|
Pagure
|
40 requests
|
3612 KiB
|
50
|
85
|
7.7 s
|
5.0 s
|
5.0 s
|
5.0 s
|
5.0 s
|
60 ms
|
HTML
•
JSON
•
stderr
|
GitLab
|
71 requests
|
2092 KiB
|
34
|
82
|
7.5 s
|
2.0 s
|
3.8 s
|
3.8 s
|
12.9 s
|
420 ms
|
HTML
•
JSON
•
stderr
|
Bitbucket
*
|
132 requests
|
3995 KiB
|
18
|
?
|
8.9 s
|
2.1 s
|
2.1 s
|
2.1 s
|
25.6 s
|
830 ms
|
HTML
•
JSON
•
stderr
|
Notes
- * Bitbucket: The diff and the discussion pages are not separate.
- * SourceHut: The diff and the discussion pages are not separate.