Comment by zipy124

1 year ago

Click on any repo from: https://codeberg.org/explore/repos

It's very speedy. Not as much as sourcehut, but you get a nicer UI. Github is becoming slow enough to meaningfully detract from productivity.

I noticed some surprising load times on Codeberg’s Forgejo instance. For example:

- The first page of releases (out of only 63 releases total) takes 3–5.5 seconds to load: https://codeberg.org/forgejo/forgejo/releases

- The issues page is faster at ~1.5 seconds, but still a bit slow: https://codeberg.org/forgejo/forgejo/issues

- The commits page for the main branch (22k commits) is much slower, taking over 11 seconds: https://codeberg.org/forgejo/forgejo/commits/branch/forgejo

These load times were surprising to me given the relatively small amount of data being loaded (just the first page of results)... It feels like there could be an inefficient query at play here? The HTML responses aren’t huge (~400kB), and my ping to Codeberg (~125ms, US<-->Berlin?) shouldn’t be a major factor when just loading a single HTML document without factoring in other resources. I also have gigabit internet, and while there could be bottlenecks between here and Europe, they surely wouldn’t be responsible for slowing things down to this degree.

For comparison, I’ve run Gitea on a local server, and it’s been lightning fast, even with larger datasets. For example, on a test with the Linux kernel repo (1.3M commits), Gitea rendered the first page of commits in under 500ms. That’s a stark contrast to the 11 seconds it took on Codeberg’s Forgejo instance for just 22k commits.

I wonder if this slowness is more of a Codeberg hosting issue or something inherent to Forgejo, but I haven't tried Forgejo locally.

  • If you want an explanation for the slowness look here: https://forgeperf.org/

    I believe Tree (worst case) is the codeberg slowness when viewing the commits page.

    • It agrees with what I was seeing, but it doesn’t really seem to explain much. I still don’t know if it is Codeberg-specific or Forgejo-specific, or why either of them would be slow for this task when Gitea local to me can go much faster (even accounting for ping latency).