Large changes in branch sizes in later builds of ROOT

Dear ROOT experts,

I’ve been doing some size comparisons between two identical (in terms of content and number of events) set of ROOT NTuples, one made with ROOT v6.36.02 and another made with v6.39.01 (compiled from master on 20/11-2025). They’re both created from another set of NTuples, originally made with 6.36.02, using the RDataFrame::Snapshot function.

I see some quite large changes of the sizes of most branches, in particular for empty branches (of type Array<float/int>). In v6.39.01 the empty vectors take up 2.9596 bytes/ev while in v6.36 only 1.4461 bytes/ev. Moreover for the other branches, which are not empty, there seems to be a size increase between 15 - 50% in the NTuples made with v6.39.01. Overall, including all the 129 branches of my NTuple the v6.39 one is 23% larger than the one made with 6.36.

Are these changes expected in later ROOT versions or is it because I’m mixing different ROOT version in the NTuple workflow?

Each set of NTuple has a total of 1 143 602 162 events and the total size is 336 GB (6.39) and 273 GB (6.36)

best,

Eirik

Dear @Eirik_Gramstad ,

Thank you for reaching out to the forum!

No, such a large increase is not expected. Could you guide me towards reproducing this behaviour, maybe with a script that creates only one file and so I can compare with the different versions of ROOT?

Cheers,
Vincenzo