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 August 12, 2022 at 15:02 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 76 91 74 86 100
Tree (best case) 14 75 78 80 89 100
Tree (worst case) 7 5 44 37 50 91
Log (best case) 18 66 83 86 90 100
Log (worst case) 17 60 87 82 0 100
Commit 45 62 88 90 74 100
Source file (best case) 0 33 71 61 75 100
Source file (worst case) 0 5 24 44 21 74
Blame (best case) 53 12 81 68 37 97
Blame (worst case) 0 0 n/a 42 0 0
Browsing tickets/issues
Browsing 54 67 90 56 83 100
Search 52 71 88 52 88 100
Details and comments 51 20 71 38 69 100
Code review
Browsing patches 0 63 86 68 79 100
Patch discussion 16 57 72 43 51 90
Patch diff 16 48 82 53 52 90

Browsing Git repositories

Summary page

Page tested Performance Accessibility Speed Index FCP FMP First Idle TTI Max FID Full report
SourceHut 2 requests 31 KiB 100 100 1.1 s 1.1 s 1.1 s 1.1 s 1.1 s 20 ms HTMLJSONstderr
GitHub 73 requests 563 KiB 91 96 3.5 s 2.4 s 2.4 s 2.4 s 2.4 s 50 ms HTMLJSONstderr
Pagure 20 requests 721 KiB 86 67 2.7 s 2.1 s 2.6 s 2.6 s 2.6 s 20 ms HTMLJSONstderr
Codeberg 20 requests 967 KiB 76 84 5.5 s 2.9 s 2.9 s 6.7 s 6.8 s 120 ms HTMLJSONstderr
GitLab 43 requests 896 KiB 74 77 3.0 s 1.7 s 1.7 s 6.3 s 6.5 s 200 ms HTMLJSONstderr
Bitbucket 74 requests 2632 KiB 11 100 12.7 s 11.0 s 13.4 s 13.4 s 17.2 s 480 ms HTMLJSONstderr

Tree (best case)

Page tested Performance Accessibility Speed Index FCP FMP First Idle TTI Max FID Full report
SourceHut 2 requests 30 KiB 100 94 1.1 s 1.1 s 1.1 s 1.1 s 1.1 s 20 ms HTMLJSONstderr
Pagure 19 requests 519 KiB 89 96 2.6 s 2.6 s 3.2 s 3.2 s 3.2 s 30 ms HTMLJSONstderr
GitLab 39 requests 864 KiB 80 81 2.2 s 1.1 s 1.8 s 5.7 s 6.0 s 430 ms HTMLJSONstderr
GitHub 54 requests 466 KiB 78 98 3.4 s 2.6 s 2.6 s 2.6 s 2.8 s 60 ms HTMLJSONstderr
Codeberg 20 requests 957 KiB 75 87 5.7 s 2.9 s 2.9 s 6.7 s 6.9 s 110 ms HTMLJSONstderr
Bitbucket 72 requests 2360 KiB 14 100 11.9 s 9.7 s 12.0 s 15.3 s 15.6 s 470 ms HTMLJSONstderr

Tree (worst case)

Page tested Performance Accessibility Speed Index FCP FMP First Idle TTI Max FID Full report
SourceHut 2 requests 83 KiB 91 ? 6.1 s 1.4 s 1.4 s 1.6 s 1.6 s 360 ms HTMLJSONstderr
Pagure 19 requests 1252 KiB 50 96 5.8 s 5.8 s 6.9 s 6.9 s 6.9 s 30 ms HTMLJSONstderr
GitHub * 53 requests 540 KiB 44 98 10.8 s 2.5 s 2.5 s 13.3 s 13.3 s 450 ms HTMLJSONstderr
GitLab 48 requests 940 KiB 37 81 3.0 s 1.7 s 3.1 s 10.6 s 10.8 s 820 ms HTMLJSONstderr
Bitbucket * 71 requests 2735 KiB 7 100 13.0 s 9.6 s 12.9 s 14.4 s 16.3 s 1,060 ms HTMLJSONstderr
Codeberg 20 requests 3485 KiB 5 ? 16.4 s 16.1 s 18.2 s 24.8 s 24.9 s 2,160 ms HTMLJSONstderr
Notes

Log (best case)

Page tested Performance Accessibility Speed Index FCP FMP First Idle TTI Max FID Full report
SourceHut 2 requests 34 KiB 100 94 1.1 s 1.1 s 1.1 s 1.1 s 1.1 s 20 ms HTMLJSONstderr
Pagure 69 requests 693 KiB 90 78 3.2 s 2.6 s 4.1 s 4.1 s 4.1 s 150 ms HTMLJSONstderr
GitLab 41 requests 685 KiB 86 76 4.7 s 2.0 s 3.1 s 5.0 s 5.6 s 220 ms HTMLJSONstderr
GitHub 57 requests 460 KiB 83 100 4.2 s 2.7 s 2.7 s 3.9 s 4.2 s 120 ms HTMLJSONstderr
Codeberg 25 requests 1360 KiB 66 84 6.0 s 3.5 s 3.5 s 7.3 s 7.3 s 180 ms HTMLJSONstderr
Bitbucket 68 requests 1697 KiB 18 100 11.1 s 9.8 s 10.2 s 10.2 s 12.1 s 450 ms HTMLJSONstderr

Log (worst case)

Page tested Performance Accessibility Speed Index FCP FMP First Idle TTI Max FID Full report
SourceHut 2 requests 40 KiB 100 ? 1.5 s 1.1 s 1.1 s 1.1 s 1.1 s 20 ms HTMLJSONstderr
GitHub 61 requests 489 KiB 87 100 3.7 s 2.5 s 2.5 s 4.2 s 4.8 s 100 ms HTMLJSONstderr
GitLab 60 requests 698 KiB 82 79 6.0 s 2.0 s 3.1 s 5.2 s 5.6 s 220 ms HTMLJSONstderr
Codeberg 20 requests 1109 KiB 60 84 7.0 s 3.7 s 3.7 s 7.9 s 8.0 s 230 ms HTMLJSONstderr
Bitbucket 70 requests 1888 KiB 17 98 11.5 s 10.8 s 11.2 s 11.2 s 13.1 s 410 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 2 requests 33 KiB 100 83 1.1 s 1.1 s 1.1 s 1.1 s 1.1 s 20 ms HTMLJSONstderr
GitLab 40 requests 821 KiB 90 83 3.6 s 1.2 s 3.3 s 6.0 s 6.4 s 310 ms HTMLJSONstderr
GitHub 56 requests 473 KiB 88 98 4.0 s 2.4 s 2.4 s 4.2 s 4.7 s 60 ms HTMLJSONstderr
Pagure 24 requests 797 KiB 74 72 3.0 s 2.1 s 3.4 s 5.3 s 5.6 s 210 ms HTMLJSONstderr
Codeberg 21 requests 1172 KiB 62 89 6.8 s 3.3 s 3.3 s 7.3 s 7.8 s 130 ms HTMLJSONstderr
Bitbucket 38 requests 2770 KiB 45 91 8.7 s 2.7 s 3.2 s 5.6 s 17.5 s 670 ms HTMLJSONstderr

Source file (best case)

Page tested Performance Accessibility Speed Index FCP FMP First Idle TTI Max FID Full report
SourceHut 3 requests 54 KiB 100 94 2.1 s 1.2 s 1.3 s 1.3 s 1.3 s 90 ms HTMLJSONstderr
Pagure 22 requests 906 KiB 75 94 4.6 s 2.6 s 3.8 s 3.8 s 3.8 s 280 ms HTMLJSONstderr
GitHub 55 requests 531 KiB 71 98 3.6 s 2.5 s 2.5 s 4.7 s 5.2 s 70 ms HTMLJSONstderr
GitLab 41 requests 1526 KiB 61 89 3.6 s 1.8 s 2.7 s 5.8 s 8.3 s 310 ms HTMLJSONstderr
Codeberg 19 requests 1236 KiB 33 89 7.9 s 4.4 s 4.4 s 9.3 s 9.4 s 410 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
SourceHut 3 requests 372 KiB 74 ? 10.5 s 3.2 s 3.2 s 3.5 s 3.5 s 720 ms HTMLJSONstderr
GitLab 40 requests 1641 KiB 44 ? 3.8 s 1.7 s 2.9 s 6.2 s 9.0 s 770 ms HTMLJSONstderr
GitHub 66 requests 974 KiB 24 ? 9.9 s 4.9 s 4.9 s 8.8 s 9.2 s 1,180 ms HTMLJSONstderr
Pagure 20 requests 1176 KiB 21 ? 9.7 s 4.7 s 7.0 s 7.5 s 7.6 s 1,560 ms HTMLJSONstderr
Codeberg 19 requests 5489 KiB 5 ? 29.5 s 25.9 s 28.3 s 44.3 s 44.4 s 4,980 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 3 requests 62 KiB 97 94 2.8 s 1.2 s 1.3 s 1.5 s 1.5 s 100 ms HTMLJSONstderr
GitHub 62 requests 520 KiB 81 98 4.1 s 2.6 s 2.6 s 5.0 s 5.3 s 160 ms HTMLJSONstderr
GitLab 29 requests 683 KiB 68 87 3.2 s 1.8 s 2.8 s 5.5 s 5.7 s 400 ms HTMLJSONstderr
Bitbucket 32 requests 2823 KiB 53 85 8.6 s 2.8 s 3.0 s 6.4 s 17.3 s 420 ms HTMLJSONstderr
Pagure 21 requests 1220 KiB 37 83 7.8 s 3.6 s 5.3 s 6.9 s 7.1 s 770 ms HTMLJSONstderr
Codeberg 24 requests 2140 KiB 12 89 9.9 s 7.5 s 10.5 s 13.3 s 13.8 s 530 ms HTMLJSONstderr

Blame (worst case)

Page tested Performance Accessibility Speed Index FCP FMP First Idle TTI Max FID Full report
GitLab 29 requests 720 KiB 42 89 21.0 s 1.4 s 2.0 s 6.0 s 6.3 s 670 ms HTMLJSONstderr
Codeberg n/an/a Lighthouse was unable to reliably load the URL you requested because the page stopped responding. HTML JSON stderr
Pagure n/an/a An error occured, see the log for more details. HTML JSON stderr
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
Notes

Browsing tickets/issues

Browsing

Page tested Performance Accessibility Speed Index FCP FMP First Idle TTI Max FID Full report
SourceHut 2 requests 34 KiB 100 89 1.2 s 1.1 s 1.1 s 1.1 s 1.1 s 20 ms HTMLJSONstderr
GitHub 45 requests 427 KiB 90 98 2.9 s 2.4 s 2.4 s 4.0 s 4.2 s 60 ms HTMLJSONstderr
Pagure 17 requests 626 KiB 83 89 4.9 s 3.0 s 3.6 s 3.6 s 3.6 s 50 ms HTMLJSONstderr
Codeberg 30 requests 1647 KiB 67 86 6.2 s 3.4 s 3.4 s 7.3 s 7.4 s 150 ms HTMLJSONstderr
GitLab 39 requests 743 KiB 56 92 3.9 s 1.0 s 3.2 s 5.8 s 5.9 s 530 ms HTMLJSONstderr
Bitbucket 25 requests 636 KiB 54 85 5.6 s 5.1 s 5.3 s 6.6 s 6.1 s 260 ms HTMLJSONstderr
Page tested Performance Accessibility Speed Index FCP FMP First Idle TTI Max FID Full report
SourceHut 2 requests 33 KiB 100 89 1.2 s 1.1 s 1.1 s 1.1 s 1.1 s 20 ms HTMLJSONstderr
GitHub 45 requests 427 KiB 88 98 2.8 s 2.5 s 2.5 s 4.4 s 4.7 s 90 ms HTMLJSONstderr
Pagure 19 requests 613 KiB 88 80 4.0 s 2.5 s 3.3 s 4.3 s 4.5 s 60 ms HTMLJSONstderr
Codeberg 30 requests 1618 KiB 71 86 5.6 s 3.3 s 3.3 s 7.1 s 7.2 s 130 ms HTMLJSONstderr
Bitbucket 25 requests 636 KiB 52 85 5.9 s 5.1 s 5.2 s 6.5 s 6.8 s 280 ms HTMLJSONstderr
GitLab 39 requests 743 KiB 52 92 3.6 s 1.7 s 1.8 s 6.1 s 6.2 s 590 ms HTMLJSONstderr

Details and comments

Page tested Performance Accessibility Speed Index FCP FMP First Idle TTI Max FID Full report
SourceHut 2 requests 46 KiB 100 91 1.7 s 1.2 s 1.2 s 1.2 s 1.2 s 20 ms HTMLJSONstderr
GitHub 76 requests 701 KiB 71 92 5.2 s 3.1 s 3.1 s 4.8 s 5.1 s 100 ms HTMLJSONstderr
Pagure 39 requests 3538 KiB 69 87 2.8 s 2.5 s 4.1 s 5.9 s 6.0 s 60 ms HTMLJSONstderr
Bitbucket 25 requests 636 KiB 51 85 5.7 s 5.1 s 5.2 s 6.7 s 6.9 s 260 ms HTMLJSONstderr
GitLab 74 requests 1477 KiB 38 79 3.5 s 1.9 s 1.9 s 9.6 s 10.6 s 690 ms HTMLJSONstderr
Codeberg 39 requests 2348 KiB 20 78 10.7 s 5.5 s 5.5 s 11.8 s 13.7 s 390 ms HTMLJSONstderr

Code review

Browsing patches

Page tested Performance Accessibility Speed Index FCP FMP First Idle TTI Max FID Full report
SourceHut 2 requests 30 KiB 100 83 1.1 s 1.1 s 1.1 s 1.1 s 1.1 s 20 ms HTMLJSONstderr
GitHub 45 requests 425 KiB 86 98 3.5 s 2.3 s 2.5 s 4.6 s 4.7 s 110 ms HTMLJSONstderr
Pagure 18 requests 570 KiB 79 82 11.6 s 2.2 s 2.9 s 2.9 s 2.9 s 40 ms HTMLJSONstderr
GitLab 44 requests 836 KiB 68 79 4.0 s 1.7 s 3.2 s 6.2 s 6.4 s 320 ms HTMLJSONstderr
Codeberg 30 requests 1677 KiB 63 86 6.5 s 3.7 s 3.7 s 7.7 s 7.8 s 150 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 2 requests 71 KiB 90 ? 7.2 s 1.1 s 1.1 s 1.1 s 1.1 s 60 ms HTMLJSONstderr
GitHub 75 requests 675 KiB 72 98 6.6 s 3.0 s 3.0 s 5.4 s 6.0 s 140 ms HTMLJSONstderr
Codeberg 26 requests 1436 KiB 57 84 7.0 s 3.7 s 3.7 s 7.8 s 9.8 s 190 ms HTMLJSONstderr
Pagure 40 requests 3391 KiB 51 85 9.0 s 4.3 s 4.8 s 4.8 s 4.9 s 100 ms HTMLJSONstderr
GitLab 62 requests 1244 KiB 43 82 4.1 s 1.8 s 1.8 s 8.7 s 9.1 s 480 ms HTMLJSONstderr
Bitbucket 119 requests 3616 KiB 16 ? 10.0 s 2.7 s 11.1 s 11.1 s 24.7 s 830 ms HTMLJSONstderr

Patch diff

Page tested Performance Accessibility Speed Index FCP FMP First Idle TTI Max FID Full report
SourceHut * 2 requests 71 KiB 90 ? 7.0 s 1.1 s 1.1 s 1.1 s 1.1 s 50 ms HTMLJSONstderr
GitHub 68 requests 557 KiB 82 97 4.8 s 2.5 s 2.5 s 5.5 s 5.9 s 140 ms HTMLJSONstderr
GitLab 59 requests 1258 KiB 53 80 7.2 s 1.7 s 4.7 s 9.8 s 10.1 s 680 ms HTMLJSONstderr
Pagure 40 requests 3390 KiB 52 85 7.5 s 3.9 s 4.8 s 6.9 s 7.1 s 80 ms HTMLJSONstderr
Codeberg 22 requests 1503 KiB 48 88 7.3 s 4.5 s 4.5 s 8.6 s 8.7 s 230 ms HTMLJSONstderr
Bitbucket * 119 requests 3638 KiB 16 ? 9.8 s 2.7 s 14.5 s 14.5 s 24.8 s 840 ms HTMLJSONstderr
Notes