Skip to content

added speed and memory benchmark, and github workflow - #128

Merged
Hendrik-code merged 2 commits into
mainfrom
pr_benchmark
Aug 13, 2026
Merged

added speed and memory benchmark, and github workflow#128
Hendrik-code merged 2 commits into
mainfrom
pr_benchmark

Conversation

@Hendrik-code

Copy link
Copy Markdown
Owner

No description provided.

Copilot AI lite review requested due to automatic review settings August 13, 2026 10:56
@Hendrik-code Hendrik-code self-assigned this Aug 13, 2026

This comment was marked as spam.

@Hendrik-code Hendrik-code added the speed/mem Changes that improve speed/memory of code execution label Aug 13, 2026
@Hendrik-code Hendrik-code linked an issue Aug 13, 2026 that may be closed by this pull request
@github-actions

github-actions Bot commented Aug 13, 2026

Copy link
Copy Markdown

Benchmark comparison

Speed (wall time per call)

baseline d8fef9f vs head d8fef9f · python 3.11.15 · 5 repeats + 1 warmup

Showing the 5 most-changed measurements per case; the rest are collapsed. Rows with a baseline below 3 ms are tagged (noise) — runner jitter on those swamps any real change.

ct_3d — shape (73, 47, 73)

Measurement baseline ms (median ±½·range) head ms (median ±½·range) Δ % p
nii_rescale_seg 3.28 ±0.03 3.37 ±0.02 +2.8% 0.002
nii_load_img 11.91 ±0.10 12.24 ±0.16 +2.8% 0.008
poi_calc_centroids_nocrop 4.89 ±0.09 5.01 ±0.02 +2.4% 0.081
nii_rescale 40.68 ±0.33 40.05 ±0.19 -1.5% 0.028
nii_fill_holes 5.00 ±0.04 5.06 ±0.06 +1.3% 0.104
… 31 more measurements
Measurement baseline ms (median ±½·range) head ms (median ±½·range) Δ % p
nii_erode_msk 6.75 ±0.02 6.67 ±0.03 -1.3% 0.001
nii_save 11.96 ±0.13 12.04 ±0.07 +0.7% 0.719
nii_dilate_msk 119.17 ±0.48 119.73 ±0.23 +0.5% 0.021
nii_filter_connected_components 4.49 ±0.03 4.51 ±0.48 +0.5% 0.384
poi_calc_poi_from_subreg_vert 11.97 ±0.10 11.92 ±0.05 -0.4% 0.252
nii_resample_from_to 41.94 ±0.34 42.03 ±0.18 +0.2% 0.959
metric_voxels 250463.00 ±0.00 250463.00 ±0.00 +0.0%
metric_labels 3.00 ±0.00 3.00 ±0.00 +0.0%
metric_foreground_pct 14.51 ±0.00 14.51 ±0.00 +0.0%
poi_load 0.29 ±0.02 0.32 ±0.03 +8.7% (noise) 0.398
poi_reorient 0.46 ±0.02 0.50 ±0.03 +7.8% (noise) 0.074
nii_apply_crop 0.77 ±0.03 0.71 ±0.01 -7.5% (noise) 0.026
poi_map_labels 0.22 ±0.01 0.20 ±0.02 -6.9% (noise) 0.369
nii_load_seg 2.87 ±0.03 3.04 ±0.01 +5.9% (noise) 0.000
poi_local_to_global_arr 0.29 ±0.01 0.27 ±0.02 -5.7% (noise) 0.712
nii_compute_crop 0.35 ±0.01 0.37 ±0.02 +4.5% (noise) 0.514
poi_to_global 0.25 ±0.02 0.26 ±0.02 +4.4% (noise) 0.384
poi_save 0.53 ±0.02 0.51 ±0.02 -3.7% (noise) 0.058
poi_rescale 0.26 ±0.01 0.27 ±0.02 +2.6% (noise) 0.430
nii_pad_to 0.79 ±0.04 0.77 ±0.02 -2.6% (noise) 0.780
nii_reorient 0.88 ±0.07 0.86 ±0.02 -2.4% (noise) 0.220
nii_set_dtype 0.54 ±0.04 0.55 ±0.01 +2.2% (noise) 0.571
nii_map_labels 0.97 ±0.02 0.95 ±0.03 -2.2% (noise) 0.446
poi_calc_centroids 2.66 ±0.04 2.72 ±0.03 +2.1% (noise) 0.236
nii_volumes 1.99 ±0.02 2.01 ±0.01 +1.4% (noise) 0.097
poi_resample_from_to 0.72 ±0.03 0.73 ±0.02 +1.3% (noise) 0.612
nii_get_connected_components 2.21 ±0.04 2.18 ±0.02 -1.2% (noise) 0.085
nii_center_of_masses 1.89 ±0.02 1.87 ±0.01 -1.0% (noise) 0.363
nii_unique 0.67 ±0.01 0.68 ±0.01 +0.9% (noise) 0.282
nii_extract_label 0.85 ±0.03 0.85 ±0.02 -0.3% (noise) 0.318
nii_get_array 0.05 ±0.01 0.05 ±0.00 +0.2% (noise) 0.850

ct_2d — shape (73, 47, 1)

Measurement baseline ms (median ±½·range) head ms (median ±½·range) Δ % p
nii_rescale 5.85 ±0.09 5.72 ±0.08 -2.2% 0.122
nii_resample_from_to 7.75 ±0.09 7.77 ±0.22 +0.2% 0.910
nii_dilate_msk 13.79 ±0.12 13.78 ±0.20 -0.1% 0.806
metric_voxels 3431.00 ±0.00 3431.00 ±0.00 +0.0%
metric_labels 3.00 ±0.00 3.00 ±0.00 +0.0%
… 30 more measurements
Measurement baseline ms (median ±½·range) head ms (median ±½·range) Δ % p
metric_foreground_pct 37.60 ±0.00 37.60 ±0.00 +0.0%
nii_erode_msk 1.11 ±0.04 0.98 ±0.01 -12.0% (noise) 0.002
nii_map_labels 0.54 ±0.01 0.48 ±0.01 -10.4% (noise) 0.000
nii_fill_holes 0.94 ±0.05 0.85 ±0.02 -9.9% (noise) 0.014
poi_to_global 0.30 ±0.06 0.27 ±0.01 -9.9% (noise) 0.207
nii_get_connected_components 0.75 ±0.01 0.67 ±0.02 -9.5% (noise) 0.000
nii_extract_label 0.51 ±0.01 0.46 ±0.02 -8.7% (noise) 0.002
nii_filter_connected_components 0.94 ±0.02 0.86 ±0.03 -8.1% (noise) 0.011
poi_reorient 0.53 ±0.01 0.49 ±0.01 -7.9% (noise) 0.003
nii_compute_crop 0.18 ±0.02 0.17 ±0.01 -6.0% (noise) 0.276
nii_unique 0.17 ±0.01 0.16 ±0.01 -5.6% (noise) 0.280
nii_load_seg 1.82 ±0.04 1.74 ±0.03 -4.9% (noise) 0.006
nii_center_of_masses 0.25 ±0.01 0.24 ±0.02 -4.9% (noise) 0.177
poi_map_labels 0.24 ±0.01 0.23 ±0.01 -4.9% (noise) 0.151
nii_pad_to 0.65 ±0.02 0.62 ±0.02 -4.7% (noise) 0.047
poi_local_to_global_arr 0.31 ±0.00 0.30 ±0.01 -4.0% (noise) 0.062
poi_rescale 0.30 ±0.01 0.29 ±0.01 -3.8% (noise) 0.195
poi_load 0.36 ±0.01 0.35 ±0.03 -3.1% (noise) 0.369
poi_save 0.58 ±0.03 0.57 ±0.03 -2.6% (noise) 0.121
poi_calc_centroids_nocrop 1.24 ±0.01 1.21 ±0.03 -2.5% (noise) 0.027
nii_get_array 0.02 ±0.00 0.02 ±0.00 +1.5% (noise) 0.562
nii_reorient 0.93 ±0.03 0.91 ±0.04 -1.4% (noise) 0.544
nii_save 1.52 ±0.03 1.50 ±0.02 -1.3% (noise) 0.142
nii_load_img 1.61 ±0.03 1.59 ±0.02 -1.3% (noise) 0.273
nii_volumes 0.33 ±0.02 0.33 ±0.01 +1.2% (noise) 0.329
nii_rescale_seg 0.86 ±0.03 0.87 ±0.02 +1.1% (noise) 0.568
nii_set_dtype 0.46 ±0.01 0.47 ±0.01 +1.0% (noise) 0.598
poi_resample_from_to 0.82 ±0.01 0.82 ±0.03 -0.8% (noise) 0.647
nii_apply_crop 0.77 ±0.01 0.77 ±0.02 +0.2% (noise) 0.533
poi_calc_centroids 1.04 ±0.02 1.04 ±0.11 +0.2% (noise) 0.618

mri_3d — shape (68, 52, 67)

Measurement baseline ms (median ±½·range) head ms (median ±½·range) Δ % p
nii_load_seg 3.16 ±0.02 2.85 ±0.15 -9.6% 0.018
nii_save 9.94 ±0.07 9.56 ±0.11 -3.9% 0.000
poi_calc_centroids 3.04 ±0.02 2.97 ±0.03 -2.3% 0.001
nii_resample_from_to 40.38 ±1.35 39.52 ±0.29 -2.1% 0.069
poi_calc_poi_from_subreg_vert 11.45 ±0.06 11.23 ±0.06 -1.9% 0.000
… 31 more measurements
Measurement baseline ms (median ±½·range) head ms (median ±½·range) Δ % p
nii_fill_holes 6.03 ±0.04 5.97 ±0.03 -1.0% 0.024
nii_rescale 38.51 ±0.14 38.23 ±0.21 -0.7% 0.012
nii_rescale_seg 3.21 ±0.05 3.19 ±0.04 -0.6% 0.223
nii_dilate_msk 155.64 ±0.79 154.78 ±0.17 -0.6% 0.110
poi_calc_centroids_nocrop 9.96 ±0.04 9.91 ±0.08 -0.6% 0.350
nii_load_img 9.79 ±0.13 9.74 ±0.10 -0.5% 0.643
nii_filter_connected_components 4.74 ±0.06 4.71 ±0.06 -0.5% 0.143
nii_erode_msk 8.46 ±0.07 8.44 ±0.08 -0.2% 0.771
metric_voxels 236912.00 ±0.00 236912.00 ±0.00 +0.0%
metric_labels 8.00 ±0.00 8.00 ±0.00 +0.0%
metric_foreground_pct 18.21 ±0.00 18.21 ±0.00 +0.0%
nii_get_array 0.06 ±0.00 0.04 ±0.00 -24.5% (noise) 0.000
nii_pad_to 0.85 ±0.01 0.76 ±0.01 -10.8% (noise) 0.000
nii_extract_label 0.89 ±0.01 0.81 ±0.02 -8.2% (noise) 0.000
nii_apply_crop 0.84 ±0.02 0.78 ±0.04 -7.1% (noise) 0.017
poi_local_to_global_arr 0.31 ±0.01 0.33 ±0.02 +7.1% (noise) 0.036
nii_compute_crop 0.38 ±0.00 0.36 ±0.00 -6.6% (noise) 0.000
poi_rescale 0.34 ±0.01 0.32 ±0.01 -5.6% (noise) 0.045
nii_map_labels 1.03 ±0.01 0.98 ±0.03 -5.1% (noise) 0.015
nii_unique 0.67 ±0.01 0.65 ±0.01 -4.2% (noise) 0.011
poi_load 0.39 ±0.01 0.38 ±0.02 -3.6% (noise) 0.169
poi_map_labels 0.28 ±0.01 0.27 ±0.00 -3.5% (noise) 0.006
nii_volumes 2.10 ±0.01 2.04 ±0.01 -3.1% (noise) 0.000
nii_reorient 1.01 ±0.01 0.98 ±0.03 -2.9% (noise) 0.049
poi_resample_from_to 0.85 ±0.04 0.82 ±0.02 -2.8% (noise) 0.148
nii_center_of_masses 2.15 ±0.02 2.09 ±0.04 -2.7% (noise) 0.046
nii_set_dtype 0.59 ±0.01 0.58 ±0.02 -2.3% (noise) 0.434
poi_reorient 0.55 ±0.01 0.53 ±0.00 -2.2% (noise) 0.006
nii_get_connected_components 2.19 ±0.02 2.17 ±0.04 -1.2% (noise) 0.086
poi_to_global 0.33 ±0.01 0.33 ±0.02 +0.4% (noise) 0.525
poi_save 0.65 ±0.01 0.64 ±0.02 -0.4% (noise) 0.649

mri_2d — shape (68, 52, 1)

Measurement baseline ms (median ±½·range) head ms (median ±½·range) Δ % p
nii_resample_from_to 7.82 ±0.13 7.56 ±0.07 -3.3% 0.006
nii_rescale 5.89 ±0.08 5.81 ±0.07 -1.4% 0.026
nii_dilate_msk 18.50 ±0.13 18.29 ±0.04 -1.1% 0.079
metric_voxels 3536.00 ±0.00 3536.00 ±0.00 +0.0%
metric_labels 7.00 ±0.00 7.00 ±0.00 +0.0%
… 30 more measurements
Measurement baseline ms (median ±½·range) head ms (median ±½·range) Δ % p
metric_foreground_pct 50.17 ±0.00 50.17 ±0.00 +0.0%
nii_unique 0.17 ±0.01 0.15 ±0.01 -11.3% (noise) 0.025
nii_apply_crop 0.81 ±0.02 0.73 ±0.03 -9.2% (noise) 0.002
nii_compute_crop 0.18 ±0.01 0.17 ±0.01 -7.1% (noise) 0.076
poi_save 0.64 ±0.02 0.60 ±0.03 -6.4% (noise) 0.289
nii_load_img 1.63 ±0.04 1.54 ±0.03 -5.6% (noise) 0.002
poi_local_to_global_arr 0.32 ±0.01 0.30 ±0.01 -5.3% (noise) 0.167
poi_reorient 0.50 ±0.01 0.53 ±0.01 +5.1% (noise) 0.001
nii_pad_to 0.66 ±0.01 0.63 ±0.03 -5.0% (noise) 0.204
poi_load 0.39 ±0.02 0.38 ±0.02 -4.3% (noise) 0.247
poi_calc_centroids 1.15 ±0.04 1.19 ±0.02 +4.3% (noise) 0.188
nii_extract_label 0.48 ±0.01 0.50 ±0.02 +4.3% (noise) 0.273
nii_rescale_seg 0.88 ±0.03 0.85 ±0.02 -4.0% (noise) 0.021
nii_erode_msk 1.33 ±0.05 1.29 ±0.02 -3.4% (noise) 0.043
nii_get_connected_components 0.74 ±0.02 0.72 ±0.02 -3.3% (noise) 0.066
nii_fill_holes 1.16 ±0.02 1.12 ±0.01 -3.0% (noise) 0.032
nii_load_seg 1.79 ±0.05 1.74 ±0.03 -2.8% (noise) 0.071
nii_map_labels 0.54 ±0.02 0.53 ±0.01 -2.6% (noise) 0.125
poi_map_labels 0.27 ±0.01 0.27 ±0.01 -2.3% (noise) 0.241
nii_set_dtype 0.47 ±0.01 0.47 ±0.01 -1.5% (noise) 0.087
poi_resample_from_to 0.84 ±0.01 0.83 ±0.02 -1.4% (noise) 0.076
nii_reorient 0.91 ±0.01 0.92 ±0.03 +1.3% (noise) 0.675
nii_volumes 0.49 ±0.01 0.50 ±0.02 +1.2% (noise) 0.268
nii_center_of_masses 0.43 ±0.01 0.43 ±0.01 -0.7% (noise) 0.928
poi_calc_centroids_nocrop 1.44 ±0.03 1.43 ±0.02 -0.6% (noise) 0.510
nii_filter_connected_components 0.92 ±0.02 0.93 ±0.02 +0.5% (noise) 0.349
poi_to_global 0.32 ±0.02 0.31 ±0.02 -0.4% (noise) 0.934
nii_save 1.53 ±0.03 1.53 ±0.06 -0.4% (noise) 0.872
nii_get_array 0.02 ±0.00 0.02 ±0.00 -0.1% (noise) 0.790
poi_rescale 0.32 ±0.01 0.32 ±0.01 +0.1% (noise) 0.671

Gate: a measurement fails when the baseline is ≥ 1 ms, the median grows by ≥ 50%, and Welch's t-test gives p < 0.05. metric_* rows are context only.

Memory (peak RSS growth per call)

baseline d8fef9f vs head d8fef9f · python 3.11.15 · 5 repeats + 1 warmup · sampler proc-status, isolation fork · measurement floor ≈ 0.90 MiB

Showing the 5 most-changed measurements per case; the rest are collapsed. Rows with a baseline below 3 MiB are tagged (noise) — runner jitter on those swamps any real change.

ct_3d — shape (73, 47, 73)

Measurement baseline MiB (median ±½·range) head MiB (median ±½·range) Δ % p
poi_resample_from_to 5.21 ±0.00 5.27 ±0.00 +1.1%
nii_dilate_msk 5.87 ±0.00 5.93 ±0.00 +1.1%
nii_set_dtype 5.22 ±0.00 5.27 ±0.00 +1.0%
nii_pad_to 5.40 ±0.00 5.46 ±0.00 +1.0%
nii_extract_label 5.41 ±0.00 5.46 ±0.00 +1.0%
… 31 more measurements
Measurement baseline MiB (median ±½·range) head MiB (median ±½·range) Δ % p
nii_map_labels 5.47 ±0.00 5.52 ±0.00 +1.0%
nii_erode_msk 5.95 ±0.00 6.01 ±0.00 +1.0%
nii_reorient 5.84 ±0.00 5.90 ±0.00 +0.9%
nii_apply_crop 5.84 ±0.00 5.90 ±0.00 +0.9%
poi_calc_centroids_nocrop 5.90 ±0.00 5.96 ±0.00 +0.9%
nii_load_seg 5.95 ±0.00 6.00 ±0.00 +0.9%
poi_calc_centroids 6.03 ±0.00 6.09 ±0.00 +0.9%
nii_rescale 6.11 ±0.00 6.16 ±0.00 +0.8% 0.000
nii_get_connected_components 6.59 ±0.00 6.65 ±0.00 +0.8%
poi_calc_poi_from_subreg_vert 7.09 ±0.00 7.15 ±0.00 +0.8%
nii_fill_holes 6.39 ±0.00 6.44 ±0.00 +0.8%
nii_filter_connected_components 6.91 ±0.00 6.96 ±0.00 +0.8%
nii_rescale_seg 5.92 ±0.00 5.97 ±0.00 +0.8%
nii_resample_from_to 6.23 ±0.00 6.28 ±0.00 +0.8% 0.000
poi_to_global 3.09 ±0.00 3.08 ±0.00 -0.1%
nii_unique 3.15 ±0.00 3.15 ±0.00 -0.1%
nii_center_of_masses 3.28 ±0.00 3.27 ±0.00 -0.1%
nii_volumes 3.53 ±0.00 3.52 ±0.00 -0.1%
nii_save 3.71 ±0.00 3.71 ±0.00 -0.1%
poi_reorient 3.84 ±0.00 3.83 ±0.00 -0.1%
nii_load_img 3.53 ±0.00 3.53 ±0.00 +0.0% 0.178
metric_voxels 250463.00 ±0.00 250463.00 ±0.00 +0.0%
metric_labels 3.00 ±0.00 3.00 ±0.00 +0.0%
metric_foreground_pct 14.51 ±0.00 14.51 ±0.00 +0.0%
nii_get_array 1.65 ±0.00 1.65 ±0.00 -0.2% (noise)
poi_rescale 2.61 ±0.00 2.61 ±0.00 -0.1% (noise)
nii_compute_crop 2.90 ±0.00 2.90 ±0.00 -0.1% (noise)
poi_local_to_global_arr 2.96 ±0.00 2.96 ±0.00 -0.1% (noise)
poi_save 1.40 ±0.00 1.40 ±0.00 +0.0% (noise)
poi_map_labels 1.77 ±0.00 1.77 ±0.00 +0.0% (noise)
poi_load 1.68 ±0.00 1.68 ±0.00 +0.0% (noise)

ct_2d — shape (73, 47, 1)

Measurement baseline MiB (median ±½·range) head MiB (median ±½·range) Δ % p
poi_resample_from_to 5.15 ±0.00 5.21 ±0.00 +1.1%
nii_set_dtype 5.15 ±0.00 5.21 ±0.00 +1.1%
nii_pad_to 5.34 ±0.00 5.39 ±0.00 +1.1%
nii_extract_label 5.34 ±0.00 5.40 ±0.00 +1.1%
nii_map_labels 5.40 ±0.00 5.46 ±0.00 +1.1%
… 30 more measurements
Measurement baseline MiB (median ±½·range) head MiB (median ±½·range) Δ % p
nii_dilate_msk 5.80 ±0.00 5.87 ±0.00 +1.1%
nii_erode_msk 5.88 ±0.00 5.95 ±0.00 +1.1%
nii_reorient 5.78 ±0.00 5.84 ±0.00 +1.0%
nii_apply_crop 5.78 ±0.00 5.84 ±0.00 +1.0%
nii_load_seg 5.88 ±0.00 5.94 ±0.00 +1.0%
poi_calc_centroids_nocrop 5.90 ±0.00 5.96 ±0.00 +1.0%
poi_calc_centroids 5.96 ±0.00 6.02 ±0.00 +1.0%
nii_get_connected_components 6.53 ±0.00 6.59 ±0.00 +0.9%
nii_rescale_seg 5.86 ±0.00 5.91 ±0.00 +0.9%
nii_fill_holes 6.32 ±0.00 6.38 ±0.00 +0.9%
nii_filter_connected_components 6.84 ±0.00 6.90 ±0.00 +0.9%
nii_rescale 6.04 ±0.00 6.09 ±0.00 +0.8%
nii_resample_from_to 6.17 ±0.00 6.22 ±0.00 +0.8%
nii_load_img 3.46 ±0.00 3.46 ±0.00 +0.0%
nii_save 3.65 ±0.00 3.65 ±0.00 +0.0%
nii_unique 3.09 ±0.00 3.09 ±0.00 +0.0%
nii_volumes 3.46 ±0.00 3.46 ±0.00 +0.0%
nii_center_of_masses 3.21 ±0.00 3.21 ±0.00 +0.0%
poi_reorient 3.77 ±0.00 3.77 ±0.00 +0.0%
poi_to_global 3.02 ±0.00 3.02 ±0.00 +0.0%
metric_voxels 3431.00 ±0.00 3431.00 ±0.00 +0.0%
metric_labels 3.00 ±0.00 3.00 ±0.00 +0.0%
metric_foreground_pct 37.60 ±0.00 37.60 ±0.00 +0.0%
nii_get_array 1.59 ±0.00 1.59 ±0.00 +0.0% (noise)
nii_compute_crop 2.84 ±0.00 2.84 ±0.00 +0.0% (noise)
poi_rescale 2.54 ±0.00 2.54 ±0.00 +0.0% (noise)
poi_local_to_global_arr 2.89 ±0.00 2.89 ±0.00 +0.0% (noise)
poi_save 1.34 ±0.00 1.34 ±0.00 +0.0% (noise)
poi_map_labels 1.71 ±0.00 1.71 ±0.00 +0.0% (noise)
poi_load 1.61 ±0.00 1.61 ±0.00 +0.0% (noise)

mri_3d — shape (68, 52, 67)

Measurement baseline MiB (median ±½·range) head MiB (median ±½·range) Δ % p
poi_resample_from_to 5.15 ±0.00 5.21 ±0.00 +1.1%
nii_set_dtype 5.21 ±0.00 5.27 ±0.00 +1.1%
nii_pad_to 5.34 ±0.00 5.39 ±0.00 +1.1%
nii_extract_label 5.34 ±0.00 5.40 ±0.00 +1.1%
nii_map_labels 5.40 ±0.00 5.46 ±0.00 +1.1%
… 31 more measurements
Measurement baseline MiB (median ±½·range) head MiB (median ±½·range) Δ % p
nii_dilate_msk 5.80 ±0.00 5.87 ±0.00 +1.1%
nii_erode_msk 5.88 ±0.00 5.95 ±0.00 +1.1%
nii_reorient 5.78 ±0.00 5.84 ±0.00 +1.0%
nii_apply_crop 5.78 ±0.00 5.84 ±0.00 +1.0%
poi_calc_centroids_nocrop 5.84 ±0.00 5.89 ±0.00 +1.0%
nii_load_seg 5.88 ±0.00 5.94 ±0.00 +1.0%
poi_calc_centroids 5.96 ±0.00 6.02 ±0.00 +1.0%
nii_get_connected_components 6.53 ±0.00 6.59 ±0.00 +0.9%
nii_rescale_seg 5.86 ±0.00 5.91 ±0.00 +0.9%
nii_fill_holes 6.32 ±0.00 6.38 ±0.00 +0.9%
nii_filter_connected_components 6.84 ±0.00 6.90 ±0.00 +0.9%
nii_rescale 6.04 ±0.00 6.09 ±0.00 +0.8%
poi_calc_poi_from_subreg_vert 7.09 ±0.00 7.14 ±0.00 +0.8%
nii_resample_from_to 6.17 ±0.00 6.22 ±0.00 +0.8%
nii_load_img 3.53 ±0.00 3.53 ±0.00 +0.0%
nii_save 3.65 ±0.00 3.65 ±0.00 +0.0%
nii_unique 3.09 ±0.00 3.09 ±0.00 +0.0%
nii_volumes 3.46 ±0.00 3.46 ±0.00 +0.0%
nii_center_of_masses 3.21 ±0.00 3.21 ±0.00 +0.0%
poi_reorient 3.77 ±0.00 3.77 ±0.00 +0.0%
poi_to_global 3.02 ±0.00 3.02 ±0.00 +0.0%
metric_voxels 236912.00 ±0.00 236912.00 ±0.00 +0.0%
metric_labels 8.00 ±0.00 8.00 ±0.00 +0.0%
metric_foreground_pct 18.21 ±0.00 18.21 ±0.00 +0.0%
nii_get_array 1.59 ±0.00 1.59 ±0.00 +0.0% (noise)
nii_compute_crop 2.84 ±0.00 2.84 ±0.00 +0.0% (noise)
poi_rescale 2.54 ±0.00 2.54 ±0.00 +0.0% (noise)
poi_local_to_global_arr 2.89 ±0.00 2.89 ±0.00 +0.0% (noise)
poi_save 1.40 ±0.00 1.40 ±0.00 +0.0% (noise)
poi_map_labels 1.71 ±0.00 1.71 ±0.00 +0.0% (noise)
poi_load 1.61 ±0.00 1.61 ±0.00 +0.0% (noise)

mri_2d — shape (68, 52, 1)

Measurement baseline MiB (median ±½·range) head MiB (median ±½·range) Δ % p
poi_resample_from_to 5.15 ±0.00 5.21 ±0.00 +1.1%
nii_set_dtype 5.21 ±0.00 5.27 ±0.00 +1.1%
nii_pad_to 5.34 ±0.00 5.39 ±0.00 +1.1%
nii_extract_label 5.34 ±0.00 5.40 ±0.00 +1.1%
nii_map_labels 5.40 ±0.00 5.46 ±0.00 +1.1%
… 30 more measurements
Measurement baseline MiB (median ±½·range) head MiB (median ±½·range) Δ % p
nii_dilate_msk 5.80 ±0.00 5.87 ±0.00 +1.1%
nii_erode_msk 5.88 ±0.00 5.95 ±0.00 +1.1%
nii_reorient 5.78 ±0.00 5.84 ±0.00 +1.0%
nii_apply_crop 5.78 ±0.00 5.84 ±0.00 +1.0%
nii_load_seg 5.88 ±0.00 5.94 ±0.00 +1.0%
poi_calc_centroids_nocrop 5.90 ±0.00 5.96 ±0.00 +1.0%
poi_calc_centroids 5.96 ±0.00 6.02 ±0.00 +1.0%
nii_get_connected_components 6.53 ±0.00 6.59 ±0.00 +0.9%
nii_rescale_seg 5.86 ±0.00 5.91 ±0.00 +0.9%
nii_fill_holes 6.32 ±0.00 6.38 ±0.00 +0.9%
nii_filter_connected_components 6.84 ±0.00 6.90 ±0.00 +0.9%
nii_rescale 6.04 ±0.00 6.09 ±0.00 +0.8%
nii_resample_from_to 6.17 ±0.00 6.22 ±0.00 +0.8%
nii_load_img 3.53 ±0.00 3.53 ±0.00 +0.0%
nii_save 3.65 ±0.00 3.65 ±0.00 +0.0%
nii_unique 3.09 ±0.00 3.09 ±0.00 +0.0%
nii_volumes 3.46 ±0.00 3.46 ±0.00 +0.0%
nii_center_of_masses 3.21 ±0.00 3.21 ±0.00 +0.0%
poi_reorient 3.77 ±0.00 3.77 ±0.00 +0.0%
poi_to_global 3.02 ±0.00 3.02 ±0.00 +0.0%
metric_voxels 3536.00 ±0.00 3536.00 ±0.00 +0.0%
metric_labels 7.00 ±0.00 7.00 ±0.00 +0.0%
metric_foreground_pct 50.17 ±0.00 50.17 ±0.00 +0.0%
nii_get_array 1.59 ±0.00 1.59 ±0.00 +0.0% (noise)
nii_compute_crop 2.84 ±0.00 2.84 ±0.00 +0.0% (noise)
poi_rescale 2.54 ±0.00 2.54 ±0.00 +0.0% (noise)
poi_local_to_global_arr 2.89 ±0.00 2.89 ±0.00 +0.0% (noise)
poi_save 1.40 ±0.00 1.40 ±0.00 +0.0% (noise)
poi_map_labels 1.71 ±0.00 1.71 ±0.00 +0.0% (noise)
poi_load 1.61 ±0.00 1.61 ±0.00 +0.0% (noise)

Gate: a measurement fails when the baseline is ≥ 1 MiB, the median grows by ≥ 50%, and Welch's t-test gives p < 0.05. metric_* rows are context only.

Comment now shows the 5 most-changed measurements per case and folds the
rest into a <details> block; rows whose baseline is below 3 ms / 3 MiB are
tagged (noise) so shared-runner jitter is not mistaken for a real change.
CI runs only the real CT/MRI cases with 5 repeats, dropping the synthetic
400^3/256^3 workloads that dominated wall time.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@Hendrik-code
Hendrik-code merged commit 393ee15 into main Aug 13, 2026
6 checks passed
@Hendrik-code
Hendrik-code deleted the pr_benchmark branch August 13, 2026 11:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

speed/mem Changes that improve speed/memory of code execution

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Speed+Memory Benchmark upon PR

2 participants