You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Reduce repeated work for fields without arguments #298
Executor.execute_field calls argument coercion for every field, including fields with no arguments.
Its async error handler also captures local values during synchronous execution.
This adds repeated work when executing introspection queries on large schemas.
A local change uses an empty dictionary when the schema field and query node both have no arguments.
It passes async error-handler state as parameters and keeps the normal resolver-information constructor.
Situation
Before
After
Change
GitHub schema introspection
256.18 ms
246.13 ms
3.9% less time
Async list with 1,000 items
1.191 ms
1.201 ms
Within variation: 0.9% more time
Large query pickle decoding
6.938 ms
7.165 ms
Within variation: 3.3% more time
These are medians from the existing repository benchmarks, with at least 50 rounds on the same CPU.
The async-list and pickle-decoding slowdowns are smaller than the larger interquartile spread from their respective runs.
The full test suite passes: 3,613 passed, 18 skipped.
Ruff, formatting, and mypy also pass.
Codex helped prepare and test the change; candidate results were tracked with Weco Observe.
Would this small Python execution change fit the project's maintenance goals?
Activity
[-]# Reduce repeated work for fields without arguments[/-][+]Reduce repeated work for fields without arguments[/+]Cito commentedon Nov 5, 2026
Closed via #299.