Skip to content

feat: write_be_fields refactor: make VDR/rVDR pure isbits values#53

Merged
Beforerr merged 1 commit into
mainfrom
push-mlpouynttxvx
Jun 11, 2026
Merged

feat: write_be_fields refactor: make VDR/rVDR pure isbits values#53
Beforerr merged 1 commit into
mainfrom
push-mlpouynttxvx

Conversation

@Beforerr

@Beforerr Beforerr commented Jun 11, 2026

Copy link
Copy Markdown
Member

Drop the buffer (and gdr for rVDR) context fields from the VDR structs;
accessors that need file context (record_sizes, num_record_dims,
read_vvrs, variable_compression) now take the dataset.

@codecov

codecov Bot commented Jun 11, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@github-actions

github-actions Bot commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

Benchmark Results (Julia v1)

Time benchmarks
main 66457dc... main / 66457dc...
elx/full_load 0.0418 ± 0.0021 ms 0.0378 ± 0.002 ms 1.11 ± 0.081
elx/sum_array 3 ± 0.43 μs 3.12 ± 0.39 μs 0.964 ± 0.18
elx/sum_lazy 2.88 ± 0.72 μs 2.98 ± 0.55 μs 0.966 ± 0.3
elx/sum_var_access 3.38 ± 0.57 μs 3.37 ± 0.6 μs 1 ± 0.25
elx/var_access 0.301 ± 0.011 μs 0.3 ± 0.001 μs 1 ± 0.037
mms/full_load 21.8 ± 2.3 μs 21.9 ± 2.1 μs 0.995 ± 0.14
mms/sum_array 0.0952 ± 0.0026 s 0.0953 ± 0.0041 s 0.999 ± 0.052
mms/sum_slice 3.57 ± 0.075 ms 3.57 ± 0.079 ms 1 ± 0.031
mms/sum_var_access 3.57 ± 0.052 ms 3.57 ± 0.065 ms 1 ± 0.023
mms/var_access 0.11 ± 0 μs 0.11 ± 0.01 μs 1 ± 0.091
time_to_load 0.137 ± 0.0029 s 0.136 ± 0.0041 s 1.01 ± 0.037
Memory benchmarks
main 66457dc... main / 66457dc...
elx/full_load 0.246 k allocs: 27.9 kB 0.217 k allocs: 24.8 kB 1.12
elx/sum_array 5 allocs: 27.7 kB 5 allocs: 27.7 kB 1
elx/sum_lazy 5 allocs: 27.7 kB 5 allocs: 27.7 kB 1
elx/sum_var_access 8 allocs: 28.1 kB 7 allocs: 28 kB 1
elx/var_access 2 allocs: 0.328 kB 1 allocs: 0.234 kB 1.4
mms/full_load 0.071 k allocs: 7.2 kB 0.065 k allocs: 6.45 kB 1.12
mms/sum_array 0.524 k allocs: 31.6 MB 0.524 k allocs: 31.6 MB 1
mms/sum_slice 0.045 k allocs: 1.29 MB 0.045 k allocs: 1.29 MB 1
mms/sum_var_access 0.045 k allocs: 1.29 MB 0.045 k allocs: 1.29 MB 1
mms/var_access 2 allocs: 0.328 kB 1 allocs: 0.219 kB 1.5
time_to_load 0.145 k allocs: 11 kB 0.145 k allocs: 11 kB 1

refactor: make VDR/rVDR pure isbits values

Drop the buffer (and gdr for rVDR) context fields from the VDR structs;
accessors that need file context (record_sizes, num_record_dims,
read_vvrs, variable_compression) now take the dataset. Records become
plain file-field values — consistent with the schema direction for
write support — and VDR construction no longer heap-allocates:
ds["BGSEc"] is down to 3 allocations.

VDR show no longer prints dims (needed buffer context); the variable
summary line already shows them.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@Beforerr Beforerr force-pushed the push-mlpouynttxvx branch from fd04ee9 to 66457dc Compare June 11, 2026 22:54
@Beforerr Beforerr merged commit 70c5cce into main Jun 11, 2026
7 checks passed
@Beforerr Beforerr deleted the push-mlpouynttxvx branch June 11, 2026 22:58
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.

1 participant