是正确的还是有问题Base.summarysize?
julia> x = rand(Int8, 100);
julia> Base.summarysize(x)
140
julia> x = allowmissing(x);
julia> Base.summarysize(x)
240
Run Code Online (Sandbox Code Playgroud)
在这种情况下,它为每个元素添加一个字节:
Julia 现在还可以将“isbits Union”值内联存储在数组中,而不需要间接框。通过存储额外的字节“类型标记数组”(每个数组元素一个字节)以及实际数组数据的字节来完成优化。 https://docs.julialang.org/en/v1/devdocs/isbitsunionarrays/
例如,考虑以下情况Int16:
julia> x = rand(Int16, 100);
julia> Base.summarysize(x)
240
julia> x = allowmissing(x);
julia> Base.summarysize(x)
340
Run Code Online (Sandbox Code Playgroud)
其中 340 = (2+1)*100 + 40
Int16请注意,使用少于一个字节的类型标记将导致元素不再在字节边界对齐。
| 归档时间: |
|
| 查看次数: |
74 次 |
| 最近记录: |