Repository navigation
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PR #101 changed the Rust async bridge and blocking runtime without measuring throughput or latency. Add a paired benchmark workflow that measures the checked-out current rsloop, immediate pre-migration master (56d0ebd), historical benchmark revision (43f624a), uvloop 0.22.1 and zuvloop 0.0.17 afresh.
Each CPython 3.14.0 / 3.14.0t job builds isolated locked release wheels and runs every candidate sequentially on the same runner and CPU. Two fresh-process warmups and nine randomized paired trials cover 1M callbacks, 200K tasks and 20K TCP round trips. A separate instrumented TCP workload records median/p95/p99 RTT without changing the throughput workload. Native imports must preserve the expected GIL state; unavailable or incompatible loops fail instead of being silently skipped.
The full comparison has now completed on the Linux host ml-lab2 (Intel Core i9-9900K, successful io_uring_setup). All six exact-revision release wheels built; 440 fresh worker processes completed, including 360 measured trials. The measured current wheel is the original PR head b02ab6a, with the corrected RSS harness.
Peak RSS is nearly unchanged. Small timing differences and paired ranges do not establish a general smol improvement or regression; these are single-CPU measurements with frequency scaling and SMT enabled.
Fix peak RSS accounting in the paired harness: Linux getrusage().ru_maxrss can retain memory from before exec, inflating fresh workers' results. Read /proc/self/status VmHWM instead, record the source in worker metadata, and add a regression check. The initial run using the inherited counter was discarded; both reported suites use the corrected harness.
Host report includes interpretation and attribution limits. Checked-in evidence preserves all raw trials and 2.2M individual RTT samples in compressed JSONL, exact refs, harness hashes, Python/package/compiler/CPU metadata, dependency freezes, paired deltas, build logs and SHA-256 checksums. Existing docs/benchmarks.md is preserved.
Validation: five statistics/RSS regression checks pass on both CPython 3.14.0 and 3.14.0t; Ruff check/format, Pyright (0 errors), git diff --check, artifact checksum verification, and all full benchmark workers pass. Every worker preserved the expected GIL state and CPU affinity; all 440 raw records and RTT sample counts were checked.