• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

dnsimple / erldns / 20967617408
86%

Build:
DEFAULT BRANCH: main
Ran 13 Jan 2026 06:16PM UTC
Jobs 1
Files 49
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

13 Jan 2026 06:14PM UTC coverage: 85.737% (+0.03%) from 85.707%
20967617408

push

github

web-flow
Calibrate ephemeral process heap sizes (#306)

* Calibrate heap sizes

This is what a script to measure the resolution of "example.com A"
takes, which I'm assuming is one of the simplest queries possible that
would take the least amount of memory possible:

```
Heap Size | Minor | Major | Expansions | Expansion Words | Total Time (us) | Max Heap
----------|-------|-------|------------|-----------------|-----------------|----------
      233 |     5 |     4 |          9 |            1118 |                66 |      376
      300 |     2 |     1 |          3 |             479 |                41 |      376
      400 |     1 |     1 |          2 |             703 |                52 |      610
      500 |     1 |     1 |          2 |             703 |                52 |      610
      600 |     1 |     1 |          2 |             703 |                53 |      610
      700 |     0 |     0 |          0 |               0 |                29 |      987
      800 |     0 |     0 |          0 |               0 |                35 |      987
     1000 |     0 |     0 |          0 |               0 |                25 |     1598
     1500 |     0 |     0 |          0 |               0 |                38 |     1598
```

So in reality the max heap size saw was 610 at the end, starting with
600 words would still require two GCs and one expansion, while starting
with 700 words would not. In that scenario, we could see how the
algorithm went from 53us to 29us.

For the record, this is a cursor-assisted script to measure this:

```erl
%%% @doc Benchmark script to find optimal min_heap_size for proto workers.
%%%
%%% This script measures GC overhead for different min_heap_size values
%%% to help determine optimal settings for:
%%% - erldns_proto_tcp_request workers
%%% - erldns_proto_tcp workers
%%% - erldns_proto_udp workers
%%%
%%% Usage:
%%%   1. Compile: erlc -I include -pa _build/default/lib/*/ebin benchmarks/min_heap_size_benchmark.erl
%%%   2. Run: erl -pa b... (continued)

1 of 1 new or added line in 1 file covered. (100.0%)

1641 of 1914 relevant lines covered (85.74%)

1341.05 hits per line

Jobs
ID Job ID Ran Files Coverage
1 20967617408.1 13 Jan 2026 06:16PM UTC 49
85.74
GitHub Action Run
Source Files on build 20967617408
  • Tree
  • List 49
  • Changed 4
  • Source Changed 2
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #20967617408
  • a13f18d7 on github
  • Prev Build on main (#20965629548)
  • Next Build on main (#20993758799)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc