Skip to content

docs(mm): add memory layout graphic #1823

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from
Draft

docs(mm): add memory layout graphic #1823

wants to merge 1 commit into from

Conversation

mkroening
Copy link
Member

No description provided.

Copy link
Contributor

@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

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

Misc

Benchmark Current: e7b7412 Previous: be0a653 Performance Ratio
micro_benchmarks Build Time 75.86 s 70.42 s 1.08
micro_benchmarks File Size 0.96 MB 0.96 MB 1.00
Scheduling time - 1 thread 68.13 ticks (±3.03 ticks) 60.24 ticks (±3.06 ticks) 1.13
Scheduling time - 2 threads 35.08 ticks (±1.72 ticks) 31.86 ticks (±1.93 ticks) 1.10
Micro - Time for syscall (getpid) 15.98 ticks (±2.17 ticks) 14.90 ticks (±1.32 ticks) 1.07
Memcpy speed - (built_in) block size 4096 71388.91 MByte/s (±49470.15 MByte/s) 81525.14 MByte/s (±56187.03 MByte/s) 0.88
Memcpy speed - (built_in) block size 1048576 40839.47 MByte/s (±28376.12 MByte/s) 42926.86 MByte/s (±29715.31 MByte/s) 0.95
Memcpy speed - (built_in) block size 16777216 25810.97 MByte/s (±20895.93 MByte/s) 28315.38 MByte/s (±23305.84 MByte/s) 0.91
Memset speed - (built_in) block size 4096 71824.35 MByte/s (±49796.05 MByte/s) 81983.14 MByte/s (±56500.99 MByte/s) 0.88
Memset speed - (built_in) block size 1048576 41092.93 MByte/s (±28541.39 MByte/s) 43135.37 MByte/s (±29857.76 MByte/s) 0.95
Memset speed - (built_in) block size 16777216 26475.71 MByte/s (±21297.50 MByte/s) 29073.62 MByte/s (±23753.59 MByte/s) 0.91
Memcpy speed - (rust) block size 4096 63823.81 MByte/s (±44701.49 MByte/s) 71810.42 MByte/s (±50069.06 MByte/s) 0.89
Memcpy speed - (rust) block size 1048576 40842.91 MByte/s (±28359.41 MByte/s) 43009.84 MByte/s (±29784.76 MByte/s) 0.95
Memcpy speed - (rust) block size 16777216 25896.73 MByte/s (±20962.58 MByte/s) 28887.29 MByte/s (±23767.73 MByte/s) 0.90
Memset speed - (rust) block size 4096 64171.30 MByte/s (±44924.89 MByte/s) 72206.11 MByte/s (±50360.23 MByte/s) 0.89
Memset speed - (rust) block size 1048576 41091.56 MByte/s (±28522.48 MByte/s) 43219.94 MByte/s (±29927.79 MByte/s) 0.95
Memset speed - (rust) block size 16777216 26553.04 MByte/s (±21349.19 MByte/s) 29651.26 MByte/s (±24214.31 MByte/s) 0.90
alloc_benchmarks Build Time 72.38 s 65.53 s 1.10
alloc_benchmarks File Size 0.92 MB 0.92 MB 1.00
Allocations - Allocation success 100.00 % 100.00 % 1
Allocations - Deallocation success 69.94 % (±0.28 %) 69.94 % (±0.30 %) 1.00
Allocations - Pre-fail Allocations 100.00 % 100.00 % 1
Allocations - Average Allocation time 11135.55 Ticks (±207.79 Ticks) 13283.14 Ticks (±172.79 Ticks) 0.84
Allocations - Average Allocation time (no fail) 11135.55 Ticks (±207.79 Ticks) 13283.14 Ticks (±172.79 Ticks) 0.84
Allocations - Average Deallocation time 822.29 Ticks (±19.49 Ticks) 841.59 Ticks (±118.38 Ticks) 0.98
mutex_benchmark Build Time 73.11 s 65.60 s 1.11
mutex_benchmark File Size 0.96 MB 0.96 MB 1.00
Mutex Stress Test Average Time per Iteration - 1 Threads 14.02 ns (±0.73 ns) 12.62 ns (±0.91 ns) 1.11
Mutex Stress Test Average Time per Iteration - 2 Threads 17.16 ns (±4.25 ns) 15.36 ns (±6.61 ns) 1.12
General
Benchmark Current: e7b7412 Previous: be0a653 Performance Ratio
startup_benchmark Build Time 68.51 s 73.75 s 0.93
startup_benchmark File Size 0.85 MB 0.85 MB 1.00
Startup Time - 1 core 0.91 s (±0.03 s) 1.01 s (±0.02 s) 0.90
Startup Time - 2 cores 0.91 s (±0.02 s) 0.99 s (±0.03 s) 0.91
Startup Time - 4 cores 2.32 s (±2.26 s) 1.01 s (±0.04 s) 2.30
multithreaded_benchmark Build Time 66.75 s 73.77 s 0.90
multithreaded_benchmark File Size 0.96 MB 0.96 MB 1.00
Multithreaded Pi Efficiency - 2 Threads 90.73 % (±6.67 %) 93.09 % (±6.52 %) 0.97
Multithreaded Pi Efficiency - 4 Threads 65.41 % (±3.34 %) 64.83 % (±5.56 %) 1.01
Multithreaded Pi Efficiency - 8 Threads 45.05 % (±3.20 %) 45.19 % (±3.25 %) 1.00

Copy link
Contributor

@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

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

Misc

Benchmark Current: 5882a27 Previous: be0a653 Performance Ratio
micro_benchmarks Build Time 71.24 s 70.42 s 1.01
micro_benchmarks File Size 0.96 MB 0.96 MB 1.00
Scheduling time - 1 thread 61.03 ticks (±2.87 ticks) 60.24 ticks (±3.06 ticks) 1.01
Scheduling time - 2 threads 32.09 ticks (±1.32 ticks) 31.86 ticks (±1.93 ticks) 1.01
Micro - Time for syscall (getpid) 14.55 ticks (±1.31 ticks) 14.90 ticks (±1.32 ticks) 0.98
Memcpy speed - (built_in) block size 4096 82898.63 MByte/s (±57111.76 MByte/s) 81525.14 MByte/s (±56187.03 MByte/s) 1.02
Memcpy speed - (built_in) block size 1048576 42647.23 MByte/s (±29533.94 MByte/s) 42926.86 MByte/s (±29715.31 MByte/s) 0.99
Memcpy speed - (built_in) block size 16777216 28700.83 MByte/s (±23682.86 MByte/s) 28315.38 MByte/s (±23305.84 MByte/s) 1.01
Memset speed - (built_in) block size 4096 82702.01 MByte/s (±56978.65 MByte/s) 81983.14 MByte/s (±56500.99 MByte/s) 1.01
Memset speed - (built_in) block size 1048576 42877.58 MByte/s (±29690.44 MByte/s) 43135.37 MByte/s (±29857.76 MByte/s) 0.99
Memset speed - (built_in) block size 16777216 29450.69 MByte/s (±24114.92 MByte/s) 29073.62 MByte/s (±23753.59 MByte/s) 1.01
Memcpy speed - (rust) block size 4096 72755.20 MByte/s (±50636.62 MByte/s) 71810.42 MByte/s (±50069.06 MByte/s) 1.01
Memcpy speed - (rust) block size 1048576 42293.84 MByte/s (±29303.44 MByte/s) 43009.84 MByte/s (±29784.76 MByte/s) 0.98
Memcpy speed - (rust) block size 16777216 28592.41 MByte/s (±23532.85 MByte/s) 28887.29 MByte/s (±23767.73 MByte/s) 0.99
Memset speed - (rust) block size 4096 72918.30 MByte/s (±50746.04 MByte/s) 72206.11 MByte/s (±50360.23 MByte/s) 1.01
Memset speed - (rust) block size 1048576 42521.17 MByte/s (±29455.27 MByte/s) 43219.94 MByte/s (±29927.79 MByte/s) 0.98
Memset speed - (rust) block size 16777216 29331.02 MByte/s (±23953.80 MByte/s) 29651.26 MByte/s (±24214.31 MByte/s) 0.99
alloc_benchmarks Build Time 66.52 s 65.53 s 1.02
alloc_benchmarks File Size 0.92 MB 0.92 MB 1.00
Allocations - Allocation success 100.00 % 100.00 % 1
Allocations - Deallocation success 70.00 % (±0.34 %) 69.94 % (±0.30 %) 1.00
Allocations - Pre-fail Allocations 100.00 % 100.00 % 1
Allocations - Average Allocation time 13364.79 Ticks (±318.68 Ticks) 13283.14 Ticks (±172.79 Ticks) 1.01
Allocations - Average Allocation time (no fail) 13364.79 Ticks (±318.68 Ticks) 13283.14 Ticks (±172.79 Ticks) 1.01
Allocations - Average Deallocation time 829.35 Ticks (±91.24 Ticks) 841.59 Ticks (±118.38 Ticks) 0.99
mutex_benchmark Build Time 66.61 s 65.60 s 1.02
mutex_benchmark File Size 0.96 MB 0.96 MB 1.00
Mutex Stress Test Average Time per Iteration - 1 Threads 12.38 ns (±0.63 ns) 12.62 ns (±0.91 ns) 0.98
Mutex Stress Test Average Time per Iteration - 2 Threads 14.28 ns (±1.11 ns) 15.36 ns (±6.61 ns) 0.93

@mkroening mkroening force-pushed the mm-docs branch 2 times, most recently from d6ce226 to a65bc36 Compare July 8, 2025 09:57
@mkroening mkroening marked this pull request as draft July 8, 2025 15:05
@mkroening mkroening self-assigned this Jul 8, 2025
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