Skip to content

refactor(io): prepare for async I/O traits#1900

Merged
mkroening merged 6 commits into
mainfrom
embedded-io-async
Sep 4, 2025
Merged

refactor(io): prepare for async I/O traits#1900
mkroening merged 6 commits into
mainfrom
embedded-io-async

Conversation

@mkroening
Copy link
Copy Markdown
Member

Depends on #1891.

@mkroening mkroening self-assigned this Aug 26, 2025
Copy link
Copy Markdown

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark Results

Details
Benchmark Current: 4711272 Previous: 083dacf Performance Ratio
startup_benchmark Build Time 128.60 s 124.04 s 1.04
startup_benchmark File Size 0.91 MB 0.91 MB 1.00
Startup Time - 1 core 0.93 s (±0.03 s) 0.93 s (±0.02 s) 1.00
Startup Time - 2 cores 0.96 s (±0.02 s) 0.93 s (±0.02 s) 1.03
Startup Time - 4 cores 0.97 s (±0.02 s) 0.95 s (±0.02 s) 1.02
multithreaded_benchmark Build Time 126.30 s 122.53 s 1.03
multithreaded_benchmark File Size 0.97 MB 0.97 MB 1.00
Multithreaded Pi Efficiency - 2 Threads 2.89 % (±13.88 %) 2.99 % (±14.36 %) 0.97
Multithreaded Pi Efficiency - 4 Threads 1.62 % (±7.76 %) 1.79 % (±8.58 %) 0.90
Multithreaded Pi Efficiency - 8 Threads 0.80 % (±3.83 %) 0.86 % (±4.12 %) 0.93
micro_benchmarks Build Time 120.51 s 120.73 s 1.00
micro_benchmarks File Size 0.97 MB 0.97 MB 1.00
Scheduling time - 1 thread 2.58 ticks (±12.36 ticks) 2.49 ticks (±11.93 ticks) 1.04
Scheduling time - 2 threads 1.61 ticks (±7.71 ticks) 1.36 ticks (±6.51 ticks) 1.18
Micro - Time for syscall (getpid) 0.11 ticks (±0.52 ticks) 0.13 ticks (±0.60 ticks) 0.86
Memcpy speed - (built_in) block size 4096 1795.98 MByte/s (±8620.69 MByte/s) 1250.00 MByte/s (±6000.00 MByte/s) 1.44
Memcpy speed - (built_in) block size 1048576 751.05 MByte/s (±3605.02 MByte/s) 844.45 MByte/s (±4053.37 MByte/s) 0.89
Memcpy speed - (built_in) block size 16777216 218.77 MByte/s (±1050.10 MByte/s) 220.90 MByte/s (±1060.32 MByte/s) 0.99
Memset speed - (built_in) block size 4096 1578.95 MByte/s (±7578.95 MByte/s) 1818.18 MByte/s (±8727.27 MByte/s) 0.87
Memset speed - (built_in) block size 1048576 1028.57 MByte/s (±4937.13 MByte/s) 995.72 MByte/s (±4779.45 MByte/s) 1.03
Memset speed - (built_in) block size 16777216 917.21 MByte/s (±4402.61 MByte/s) 918.43 MByte/s (±4408.46 MByte/s) 1.00
Memcpy speed - (rust) block size 4096 967.74 MByte/s (±4645.16 MByte/s) 1176.47 MByte/s (±5647.06 MByte/s) 0.82
Memcpy speed - (rust) block size 1048576 748.98 MByte/s (±3595.10 MByte/s) 768.98 MByte/s (±3691.10 MByte/s) 0.97
Memcpy speed - (rust) block size 16777216 219.06 MByte/s (±1051.50 MByte/s) 218.60 MByte/s (±1049.28 MByte/s) 1.00
Memset speed - (rust) block size 4096 1558.44 MByte/s (±7480.52 MByte/s) 1538.46 MByte/s (±7384.62 MByte/s) 1.01
Memset speed - (rust) block size 1048576 979.72 MByte/s (±4702.66 MByte/s) 1011.15 MByte/s (±4853.51 MByte/s) 0.97
Memset speed - (rust) block size 16777216 940.84 MByte/s (±4516.02 MByte/s) 913.73 MByte/s (±4385.90 MByte/s) 1.03
alloc_benchmarks Build Time 118.48 s 117.69 s 1.01
alloc_benchmarks File Size 0.98 MB 0.98 MB 1.00
Allocations - Allocation success 2.00 % (±13.86 %) 2.00 % (±13.86 %) 1
Allocations - Deallocation success 1.39 % (±9.65 %) 1.40 % (±9.67 %) 1.00
Allocations - Pre-fail Allocations 2.00 % (±13.86 %) 2.00 % (±13.86 %) 1
Allocations - Average Allocation time 233.66 Ticks (±1619.18 Ticks) 232.75 Ticks (±1612.89 Ticks) 1.00
Allocations - Average Allocation time (no fail) 233.66 Ticks (±1619.18 Ticks) 232.75 Ticks (±1612.89 Ticks) 1.00
Allocations - Average Deallocation time 15.41 Ticks (±106.82 Ticks) 15.72 Ticks (±108.93 Ticks) 0.98
mutex_benchmark Build Time 118.61 s 120.56 s 0.98
mutex_benchmark File Size 0.97 MB 0.97 MB 1.00
Mutex Stress Test Average Time per Iteration - 1 Threads 0.26 ns (±1.80 ns) 0.26 ns (±1.80 ns) 1
Mutex Stress Test Average Time per Iteration - 2 Threads 0.32 ns (±2.22 ns) 0.30 ns (±2.08 ns) 1.07

This comment was automatically generated by workflow using github-action-benchmark.

@mkroening mkroening force-pushed the embedded-io-async branch 3 times, most recently from 403cfad to 37b5746 Compare September 2, 2025 15:03
@mkroening mkroening changed the title refactor(io): use embedded-io-async traits refactor(io): prepare for async I/O traits Sep 4, 2025
@mkroening mkroening marked this pull request as ready for review September 4, 2025 07:54
@mkroening mkroening requested a review from stlankes September 4, 2025 07:58
@mkroening mkroening added this pull request to the merge queue Sep 4, 2025
Merged via the queue into main with commit fb03875 Sep 4, 2025
39 of 41 checks passed
@mkroening mkroening deleted the embedded-io-async branch September 4, 2025 14:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants