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

dnsimple / erldns / 20967617408 / 1
86%
main: 86%

Build:
DEFAULT BRANCH: main
Ran 13 Jan 2026 06:16PM UTC
Files 49
Run time 2s
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.1

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)

1641 of 1914 relevant lines covered (85.74%)

1341.05 hits per line

Source Files on job 20967617408.1
  • Tree
  • List 49
  • Changed 4
  • Source Changed 2
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 20967617408
  • a13f18d7 on github
  • Prev Job for on main (#20965629548.1)
  • Next Job for on main (#20993758799.1)
  • 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