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

aio-libs / multidict / 38584115273
86%

Build:
DEFAULT BRANCH: master
Ran 14 Oct 2026 02:51PM UTC
Jobs 1
Files 50
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

14 Oct 2026 02:50PM UTC coverage: 85.863%. Remained the same
38584115273

push

github

web-flow
Force inlining of str_cmp() (#1800)

<!-- Thank you for your contribution! -->

## What do these changes do?

Marks `str_cmp()` as `ALWAYS_INLINE`. GCC kept an out-of-line copy of it
on both builds, called from the hot lookup helpers
(`_md_get_one_locked`, `_md_contains_*`, `_md_pop_one_locked`,
`md_set_default`, `_md_update`, `_md_lockfree_get`); now no copy is
left. Only the C extension is affected.

Callgrind, Ir per operation, rows that moved by 0.3% or more (`dict`
stayed at 0.000% on both builds):

GIL (3.14.7)

| operation | class | before | after | change |
|---|---|---:|---:|---:|
| `d.get(key)`, miss | MultiDict | 332.7 | 315.7 | -5.11% |
| `d.get(key)`, miss | CIMultiDict | 363.8 | 346.4 | -4.78% |
| `d[istr]` | CIMultiDict | 162.0 | 157.8 | -2.59% |
| `d[key] = v`, existing | MultiDict | 309.3 | 303.3 | -1.94% |
| `key in d` | MultiDict | 145.8 | 143.6 | -1.51% |
| `d[key] = v`, new | MultiDict | 443.4 | 437.4 | -1.35% |
| `d.pop(key)` | MultiDict | 392.2 | 390.0 | -0.56% |
| `d[istr] = v` | CIMultiDict | 317.3 | 316.3 | -0.32% |
| `d.setdefault(key, v)`, new | CIMultiDict | 618.6 | 620.5 | +0.31% |
| `d.update(other)` | CIMultiDict | 40110 | 40310 | +0.50% |
| `d.pop(key)` | CIMultiDict | 443.7 | 450.4 | +1.51% |
| `key in d` | CIMultiDict | 187.8 | 190.8 | +1.60% |
| keys iteration, duplicates | MultiDict | 211.4 | 214.8 | +1.61% |
| keys iteration, duplicates | CIMultiDict | 205.4 | 208.8 | +1.66% |

FT (3.14.7t)

| operation | class | before | after | change |
|---|---|---:|---:|---:|
| `d.clear()` | MultiDict | 6176 | 5776 | -6.48% |
| `d.copy()` | MultiDict | 12551 | 12151 | -3.19% |
| reinit from a clone | MultiDict | 13070 | 12670 | -3.06% |
| `d[key] = v`, existing | MultiDict | 459.7 | 446.7 | -2.83% |
| `del d[key]` | MultiDict | 357.5 | 347.5 | -2.80% |
| `d.update(other)` | MultiDict | 42256 | 41760 | -1.17% |
| `d[key] = v`, new | MultiDict | 614.1 | 607.2 | -1.12% |
| `d.get(key)`, miss | CIMultiDict | 398.9 | 395.2 | -0.93%... (continued)

842 of 1684 branches covered (50.0%)

Branch coverage included in aggregate %.

9799 of 10709 relevant lines covered (91.5%)

1.83 hits per line

Jobs
ID Job ID Ran Files Coverage
1 MyPy - 38584115273.1 14 Oct 2026 02:51PM UTC 100
85.86
GitHub Action Run
Source Files on build 38584115273
  • Tree
  • List 50
  • Changed 2
  • Source Changed 0
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #38584115273
  • 444bef96 on github
  • Prev Build on master (#38538425053)
  • Next Build on master (#38692315744)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc