Files
JuliaFEM.jl/benchmarks/results/struct_size_scaling.csv
T
Jukka Aho 2cbb382ca8 feat(benchmark): Validate O(n) vs O(1) struct scaling hypothesis
- Tests 1 to 5000 fields to find crossover point
- Confirms stack copying is O(n) at 0.16 ns/field
- Confirms Dict mutation is O(1) at 7 ns constant
- Crossover at 100 fields (800 bytes) for updates
- Typical FEM elements (20-60 fields) well below crossover
- Immutable wins for access and iteration at ALL sizes
- Generates 5 publication-quality plots
- Exports JSON + CSV with system specs
- System: Intel Xeon Gold 6326, 32 cores, 503 GB RAM
2025-11-09 21:00:51 +02:00

1.9 KiB

1nfieldsbytesmut_access_nsimm_access_nsspeedup_accessmut_update_nsimm_update_nsspeedup_updateimm_copy_nsmut_iter_nsimm_iter_nsspeedup_iter
2184.6152.0232.28126544735541267.19919919919919952.3153.10980526963248362.02311.7737737737737742.0245.817081904038426
32164.9042.0232.42412259021255547.2072072072072072.3143.114609856182892.02914.489979959919842.0257.1555456592196744
45404.8972.3732.0636325326590817.2012012012012012.6042.7654382493092172.38316.709418837675352.3127.227257282731553
510804.6212.0292.27747658945293277.19919919919919952.6022.76679446548777853.31123.131526104417672.6028.889902422912249
6201604.6182.0232.2827483934750377.2012012012012013.16332665330661332.27646461792803263.17763.1316326530612245.52311.43067764857165
7504004.6172.0292.2755051749630367.1971971971971976.0221.19515064715994656.895895895895896196.8490259740259824.7831325301204837.942862982909166
81008004.6182.0252.2804938271604947.19819819819819811.7457457457457450.6128344980398849.476476476476476260.5578635014836768.503073770491813.803593753682347
920016004.6212.3731.94732406236831017.4104104104104124.6335341365461850.3008261165179852420.948897795591183777.9142857142857155.16064757160655.013605562294905
1050040004.6242.0272.2812037493833257.19819819819819880.838541666666670.0890441372369083158.684638860630721156.3499.355670103092732.3155840000000003
11100080004.6712.0842.2413627639155477.2002002002002193.262578616352220.0372560495246904545.701718907987873465.751100.23.1501090710779853
122000160004.6252.0242.28507905138339947.197197197197197410.85427135678390.017517639949146882.948132780082994811.7142857142852226.2222222222222.1613809428742545
135000400004.6232.0832.21939510321651457.20420420420420451936.10.0037209876577677828867.040816326530633969.05667.1666666666675.994000529365056