For the longest time I wanted to see the performance impact of my changes. This desire goes back years, back to the early days of CoreDNS. And now I finally have it.

It does require running your own forgejo-runner on your own hardware to have any meaningful data. Without further adu:

# On https://codeberg.org/miekg/dns/actions you can see the run and copy and paste a new.txt if performance is
# better. Put this contents in old.txt
on: [push, pull_request]

jobs:
  test:
    runs-on: atoom-tiny
    steps:
      - uses: actions/checkout@v6
      - uses: actions/setup-go@v6
        with:
          go-version: ${{ vars.GOVERSION }}
      - run: |
          apt-get update
          apt-get -y install dnsperf jq
          go install golang.org/x/perf/cmd/benchstat@latest
          (cd cmd/reflect; go build)
          HOSTNAME=atoom-tiny
          # Sleep here so we have the machine to ourselves.
          sleep 60
          (cd cmd/reflect; make new.txt)
          REF=$(echo ${{ forgejo.ref }} | cut -d/ -f3)
          echo ${{ forgejo.api_url}}/repos/${{ forgejo.repository }}/issues/${REF}/comments
          echo "{\"body\": $(cd cmd/reflect; make stat | jq -sR .)}" | \
                          curl --json @- \
                          -H 'Authorization: token ${{ forgejo.token }}' \
                          ${{ forgejo.api_url}}/repos/${{ forgejo.repository }}/issues/${REF}/comments

See https://codeberg.org/miekg/dns for all other bits that are needed.