Historical results »
Source code »

Software Forge Performance Index

This webpage collects performance information about various hosted software development services. The reports are updated weekly, most recently on September 29, 2023 at 15:04 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.

0–49 50–89 90–100

All performance results

Bitbucket Codeberg GitHub GitLab Pagure SourceHut
Browsing Git repositories
Summary page 11 96 86 75 86 100
Tree (best case) 9 98 70 75 91 100
Tree (worst case) 8 6 50 74 51 95
Log (best case) 21 94 81 73 75 100
Log (worst case) 19 88 79 75 0 100
Commit 17 93 86 75 67 100
Source file (best case) 0 74 50 74 78 100
Source file (worst case) 0 5 32 74 23 74
Blame (best case) 43 36 37 75 38 99
Blame (worst case) 0 0 n/a 60 0 0
Browsing tickets/issues
Browsing 55 90 91 73 72 100
Search 54 91 88 74 80 100
Details and comments 55 52 73 74 69 100
Code review
Browsing patches 0 88 89 76 76 100
Patch discussion 17 58 69 73 56 99
Patch diff 16 78 75 72 53 99

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 HTMLJSONstderr
Codeberg 10 requests 551 KiB 96 78 2.9 s 1.9 s 1.9 s 4.0 s 4.3 s 110 ms HTMLJSONstderr
GitHub 90 requests 708 KiB 86 98 3.9 s 2.5 s 2.5 s 4.7 s 5.0 s 50 ms HTMLJSONstderr
Pagure 20 requests 721 KiB 86 67 2.6 s 2.1 s 2.5 s 2.5 s 2.5 s 20 ms HTMLJSONstderr
GitLab 60 requests 1862 KiB 75 89 2.3 s 1.5 s 1.5 s 1.5 s 1.5 s 20 ms HTMLJSONstderr
Bitbucket 68 requests 2073 KiB 11 100 10.8 s 10.1 s 11.4 s 11.4 s 14.6 s 780 ms HTMLJSONstderr

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 HTMLJSONstderr
Codeberg 10 requests 533 KiB 98 86 2.4 s 1.7 s 1.7 s 3.7 s 3.9 s 100 ms HTMLJSONstderr
Pagure 19 requests 519 KiB 91 96 2.0 s 2.0 s 2.7 s 2.7 s 2.7 s 30 ms HTMLJSONstderr
GitLab 57 requests 1841 KiB 75 93 2.5 s 1.6 s 1.6 s 1.6 s 1.6 s 20 ms HTMLJSONstderr
GitHub 99 requests 1036 KiB 70 100 5.9 s 2.6 s 2.6 s 2.6 s 8.3 s 270 ms HTMLJSONstderr
Bitbucket 67 requests 2070 KiB 9 100 11.4 s 9.8 s 11.5 s 11.5 s 14.3 s 940 ms HTMLJSONstderr

Tree (worst case)

Page tested Performance Accessibility Speed Index FCP FMP First Idle TTI Max FID Full report
SourceHut 4 requests 86 KiB 95 ? 4.7 s 1.4 s 1.4 s 1.6 s 1.6 s 120 ms HTMLJSONstderr
GitLab 66 requests 1920 KiB 74 93 2.6 s 1.6 s 1.6 s 1.6 s 1.6 s 20 ms HTMLJSONstderr
Pagure 19 requests 1253 KiB 51 96 6.0 s 6.0 s 6.6 s 6.6 s 6.6 s 20 ms HTMLJSONstderr
GitHub * 99 requests 1048 KiB 50 100 5.7 s 2.6 s 2.6 s 8.4 s 9.3 s 450 ms HTMLJSONstderr
Bitbucket * 68 requests 2082 KiB 8 100 11.0 s 10.0 s 11.3 s 11.3 s 14.5 s 930 ms HTMLJSONstderr
Codeberg 10 requests 3192 KiB 6 86 15.3 s 15.3 s 15.3 s 19.5 s 19.7 s 500 ms HTMLJSONstderr
Notes

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 HTMLJSONstderr
Codeberg 15 requests 936 KiB 94 78 3.1 s 2.3 s 2.3 s 4.3 s 4.6 s 110 ms HTMLJSONstderr
GitHub 72 requests 600 KiB 81 100 4.2 s 2.6 s 2.6 s 5.0 s 5.5 s 180 ms HTMLJSONstderr
Pagure 69 requests 693 KiB 75 78 7.2 s 2.5 s 3.6 s 4.1 s 4.4 s 80 ms HTMLJSONstderr
GitLab 53 requests 1695 KiB 73 89 3.8 s 1.5 s 1.5 s 1.5 s 1.5 s 20 ms HTMLJSONstderr
Bitbucket 48 requests 1727 KiB 21 100 10.4 s 9.9 s 10.1 s 11.3 s 11.6 s 440 ms HTMLJSONstderr

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.4 s 1.1 s 1.1 s 1.1 s 1.1 s 20 ms HTMLJSONstderr
Codeberg 10 requests 684 KiB 88 78 3.9 s 2.5 s 2.5 s 4.5 s 4.8 s 100 ms HTMLJSONstderr
GitHub 77 requests 626 KiB 79 100 4.1 s 2.6 s 2.6 s 4.4 s 4.7 s 190 ms HTMLJSONstderr
GitLab 72 requests 1707 KiB 75 91 1.7 s 1.7 s 1.7 s 1.7 s 1.7 s 20 ms HTMLJSONstderr
Bitbucket 50 requests 1725 KiB 19 98 10.4 s 9.9 s 10.1 s 10.1 s 11.7 s 450 ms HTMLJSONstderr
Pagure n/an/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 HTMLJSONstderr
Codeberg 11 requests 763 KiB 93 78 2.4 s 2.3 s 2.3 s 4.5 s 5.1 s 140 ms HTMLJSONstderr
GitHub 71 requests 600 KiB 86 100 3.7 s 2.6 s 2.6 s 4.7 s 5.1 s 120 ms HTMLJSONstderr
GitLab 52 requests 1807 KiB 75 94 2.2 s 1.5 s 1.5 s 1.5 s 1.5 s 20 ms HTMLJSONstderr
Pagure 24 requests 797 KiB 67 72 11.1 s 2.2 s 3.6 s 5.5 s 5.9 s 140 ms HTMLJSONstderr
Bitbucket 63 requests 3277 KiB 17 ? 12.2 s 10.0 s 14.3 s 14.3 s 17.3 s 490 ms HTMLJSONstderr

Source file (best case)

Page tested Performance Accessibility Speed Index FCP FMP First Idle TTI Max FID Full report
SourceHut 5 requests 57 KiB 100 94 1.8 s 1.4 s 1.4 s 1.4 s 1.4 s 20 ms HTMLJSONstderr
Pagure 22 requests 906 KiB 78 94 2.5 s 2.5 s 5.0 s 5.0 s 5.0 s 180 ms HTMLJSONstderr
GitLab 59 requests 2534 KiB 74 94 2.8 s 1.5 s 1.5 s 1.5 s 1.5 s 20 ms HTMLJSONstderr
Codeberg 9 requests 813 KiB 74 83 4.7 s 3.5 s 3.5 s 5.5 s 5.7 s 100 ms HTMLJSONstderr
GitHub 90 requests 982 KiB 50 100 6.0 s 2.5 s 2.5 s 7.7 s 8.3 s 390 ms HTMLJSONstderr
Bitbucket n/an/a An error occured, see the log for more details. HTML JSON stderr

Source file (worst case)

Page tested Performance Accessibility Speed Index FCP FMP First Idle TTI Max FID Full report
GitLab 58 requests 2648 KiB 74 94 2.8 s 1.5 s 1.5 s 1.5 s 1.5 s 20 ms HTMLJSONstderr
SourceHut 5 requests 374 KiB 74 ? 6.7 s 2.7 s 2.7 s 3.3 s 3.4 s 430 ms HTMLJSONstderr
GitHub 90 requests 1143 KiB 32 100 7.1 s 3.5 s 3.5 s 8.2 s 8.9 s 570 ms HTMLJSONstderr
Pagure 20 requests 1176 KiB 23 ? 11.2 s 5.8 s 7.0 s 8.1 s 8.0 s 620 ms HTMLJSONstderr
Codeberg 9 requests 5066 KiB 5 ? 24.9 s 24.9 s 24.9 s 29.2 s 29.3 s 2,830 ms HTMLJSONstderr
Bitbucket n/an/a An error occured, see the log for more details. HTML JSON stderr

Blame (best case)

Page tested Performance Accessibility Speed Index FCP FMP First Idle TTI Max FID Full report
SourceHut 5 requests 64 KiB 99 94 2.9 s 1.2 s 1.2 s 1.2 s 1.2 s 20 ms HTMLJSONstderr
GitLab 36 requests 1661 KiB 75 94 1.7 s 1.7 s 1.7 s 1.7 s 1.7 s 20 ms HTMLJSONstderr
Bitbucket 32 requests 20506 KiB 43 85 30.4 s 2.9 s 2.9 s 5.7 s 104.0 s 400 ms HTMLJSONstderr
Pagure 21 requests 1220 KiB 38 83 7.8 s 4.5 s 5.2 s 6.9 s 7.1 s 650 ms HTMLJSONstderr
GitHub 102 requests 1037 KiB 37 100 6.6 s 2.7 s 2.7 s 8.2 s 8.7 s 750 ms HTMLJSONstderr
Codeberg 14 requests 1703 KiB 36 83 6.5 s 6.5 s 6.6 s 9.1 s 9.6 s 440 ms HTMLJSONstderr

Blame (worst case)

Page tested Performance Accessibility Speed Index FCP FMP First Idle TTI Max FID Full report
GitLab 36 requests 1697 KiB 60 96 23.2 s 1.8 s 1.8 s 1.8 s 1.8 s 20 ms HTMLJSONstderr
SourceHut n/an/a The page provided is not HTML (served as MIME type ). HTML JSON stderr
Bitbucket n/an/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/an/a An error occured, see the log for more details. HTML JSON stderr
Pagure n/an/a An error occured, see the log for more details. HTML JSON stderr
Notes

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 HTMLJSONstderr
GitHub 60 requests 549 KiB 91 100 3.2 s 2.5 s 2.5 s 4.4 s 4.8 s 140 ms HTMLJSONstderr
Codeberg 27 requests 2069 KiB 90 76 2.8 s 2.6 s 2.6 s 4.8 s 5.2 s 190 ms HTMLJSONstderr
GitLab 64 requests 1931 KiB 73 96 3.7 s 1.6 s 1.6 s 1.6 s 1.6 s 20 ms HTMLJSONstderr
Pagure 18 requests 629 KiB 72 80 15.5 s 3.0 s 3.0 s 3.0 s 3.0 s 30 ms HTMLJSONstderr
Bitbucket 30 requests 737 KiB 55 92 5.5 s 5.0 s 5.0 s 6.0 s 6.2 s 160 ms HTMLJSONstderr
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 HTMLJSONstderr
Codeberg 27 requests 2046 KiB 91 78 3.1 s 2.5 s 2.5 s 4.6 s 5.4 s 170 ms HTMLJSONstderr
GitHub 60 requests 550 KiB 88 98 3.8 s 2.5 s 2.5 s 4.3 s 4.6 s 120 ms HTMLJSONstderr
Pagure 20 requests 619 KiB 80 80 3.9 s 3.0 s 3.7 s 3.7 s 3.7 s 30 ms HTMLJSONstderr
GitLab 65 requests 1932 KiB 74 90 3.2 s 1.6 s 1.6 s 1.6 s 1.6 s 20 ms HTMLJSONstderr
Bitbucket 30 requests 738 KiB 54 92 5.7 s 5.0 s 5.0 s 6.1 s 6.2 s 180 ms HTMLJSONstderr

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 1.9 s 1.2 s 1.2 s 1.2 s 1.2 s 20 ms HTMLJSONstderr
GitLab 103 requests 2814 KiB 74 88 2.7 s 1.8 s 1.8 s 1.8 s 1.8 s 20 ms HTMLJSONstderr
GitHub 88 requests 805 KiB 73 92 5.7 s 3.1 s 3.1 s 5.4 s 6.3 s 190 ms HTMLJSONstderr
Pagure 40 requests 3544 KiB 69 87 3.6 s 3.0 s 3.8 s 3.8 s 3.8 s 50 ms HTMLJSONstderr
Bitbucket 30 requests 738 KiB 55 92 5.7 s 5.0 s 5.0 s 6.0 s 6.2 s 160 ms HTMLJSONstderr
Codeberg 38 requests 2480 KiB 52 78 7.5 s 4.6 s 4.7 s 7.2 s 8.2 s 110 ms HTMLJSONstderr

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 HTMLJSONstderr
GitHub 59 requests 548 KiB 89 98 4.1 s 2.6 s 2.6 s 4.2 s 4.7 s 160 ms HTMLJSONstderr
Codeberg 27 requests 2130 KiB 88 76 3.2 s 2.8 s 2.8 s 5.0 s 5.4 s 220 ms HTMLJSONstderr
GitLab 56 requests 1864 KiB 76 86 2.7 s 1.6 s 1.6 s 1.6 s 1.6 s 20 ms HTMLJSONstderr
Pagure 18 requests 572 KiB 76 82 4.7 s 3.2 s 3.2 s 3.2 s 3.2 s 30 ms HTMLJSONstderr
Bitbucket n/an/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.4 s 1.4 s 1.4 s 1.4 s 1.4 s 20 ms HTMLJSONstderr
GitLab 92 requests 2563 KiB 73 90 3.6 s 1.7 s 1.7 s 1.7 s 1.7 s 20 ms HTMLJSONstderr
GitHub 89 requests 800 KiB 69 100 6.5 s 3.1 s 3.1 s 5.8 s 6.4 s 190 ms HTMLJSONstderr
Codeberg 14 requests 1202 KiB 58 76 9.7 s 4.0 s 4.0 s 6.1 s 7.9 s 130 ms HTMLJSONstderr
Pagure 40 requests 3875 KiB 56 85 7.0 s 3.8 s 4.3 s 5.7 s 5.9 s 100 ms HTMLJSONstderr
Bitbucket 119 requests 4095 KiB 17 ? 10.5 s 2.1 s 2.1 s 5.3 s 26.6 s 1,020 ms HTMLJSONstderr

Patch diff

Page tested Performance Accessibility Speed Index FCP FMP First Idle TTI Max FID Full report
SourceHut * 4 requests 83 KiB 99 ? 3.3 s 1.4 s 1.4 s 1.4 s 1.4 s 20 ms HTMLJSONstderr
Codeberg 11 requests 984 KiB 78 78 4.1 s 3.4 s 3.4 s 5.6 s 5.9 s 110 ms HTMLJSONstderr
GitHub 83 requests 693 KiB 75 97 5.8 s 2.9 s 2.9 s 5.8 s 6.3 s 250 ms HTMLJSONstderr
GitLab 85 requests 2428 KiB 72 88 4.5 s 1.7 s 1.7 s 1.7 s 1.7 s 20 ms HTMLJSONstderr
Pagure 40 requests 3875 KiB 53 85 8.2 s 4.4 s 4.9 s 4.9 s 5.0 s 90 ms HTMLJSONstderr
Bitbucket * 119 requests 4094 KiB 16 ? 10.5 s 2.1 s 2.1 s 5.1 s 26.5 s 1,020 ms HTMLJSONstderr
Notes