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

aio-libs / multidict / 37594119066
86%

Build:
DEFAULT BRANCH: master
Ran 07 Oct 2026 08:30AM 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

07 Oct 2026 08:29AM UTC coverage: 85.961%. Remained the same
37594119066

push

github

web-flow
Make str_cmp() a plain static function (#1726)

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

## What do these changes do?

Drops `ALWAYS_INLINE static inline` from `str_cmp()` in `identity.h`,
leaving it plain `static`. No `tools/check_inlining.py` rule names it.

GCC now keeps one out-of-line `str_cmp()` (130 bytes on GIL, 162 on FT)
shared by every key lookup. `.text` shrinks by 1144 bytes on GIL and
8872 on FT.

Callgrind against `1a94ccde`, Ir per call, rows that moved by more than
1%:

| build | operation | MultiDict | CIMultiDict |
|---|---|---|---|
| GIL 3.14.7 | `d[key]` | 151.0 -> 147.0 (-2.6%) | unchanged |
| GIL 3.14.7 | `key in d` | 133.6 -> 127.3 (-4.7%) | unchanged |
| GIL 3.14.7 | `del d[key]` | 256.6 -> 252.9 (-1.4%) | 304.0 -> 302.0
(-0.7%) |
| GIL 3.14.7 | `d.update(other)` | -1.3% | -1.6% |
| GIL 3.14.7 | `d[istr]` | | 157.0 -> 153.0 (-2.5%) |
| FT 3.14.7t | `key in d` | 174.6 -> 164.6 (-5.7%) | 217.0 -> 206.0
(-5.1%) |
| FT 3.14.7t | `setdefault` new key | 678.8 -> 669.8 (-1.3%) | 746.3 ->
734.7 (-1.6%) |
| FT 3.14.7t | `d[key]` | 216.8 -> 219.8 (+1.4%) | 258.3 -> 261.3
(+1.2%) |
| FT 3.14.7t | `d[key] = v`, existing | 451.4 -> 462.2 (+2.4%) | 497.1
-> 505.1 (+1.6%) |
| FT 3.14.7t | `d[key] = v`, new | 566.3 -> 575.2 (+1.6%) | 633.5 ->
644.4 (+1.7%) |
| FT 3.14.7t | `del d[key]` | 373.6 -> 385.6 (+3.2%) | 430.0 -> 438.0
(+1.9%) |
| FT 3.14.7t | `d.pop(key)` | 513.5 -> 521.5 (+1.6%) | 572.2 -> 580.2
(+1.4%) |
| FT 3.14.7t | `d[istr] = v` | | 452.2 -> 461.2 (+2.0%) |

## Are there changes in behavior for the user?

No.

## Is it a substantial burden for the maintainers to support this?

No.

## Related issue number

N/A

## Checklist

- [x] I think the code is well written
- [ ] Unit tests for the changes exist (N/A, no behavior change)
- [x] Documentation reflects the changes (N/A)
- [ ] If you provide code modification, please add yourself to
`CONTRIBUTORS.txt` (N/A)
- [x] Add a new news fragment into the `CHANGES/` folder
- [x] `mak... (continued)

793 of 1586 branches covered (50.0%)

Branch coverage included in aggregate %.

9353 of 10217 relevant lines covered (91.54%)

1.83 hits per line

Jobs
ID Job ID Ran Files Coverage
1 MyPy - 37594119066.1 07 Oct 2026 08:30AM UTC 98
85.96
GitHub Action Run
Source Files on build 37594119066
  • Tree
  • List 49
  • 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 #37594119066
  • 889fe08a on github
  • Prev Build on master (#37592164981)
  • Next Build on master (#37594766750)
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