问题:我想在不触发内存分配的情况下索引到数组,尤其是在将索引元素传递给函数时.从阅读朱莉娅文档,我怀疑答案围绕使用该sub函数,但不能完全看到如何...
工作示例:我构建了一个Float64(x)的大向量,然后是每个观察的索引x.
N = 10000000
x = randn(N)
inds = [1:N]
Run Code Online (Sandbox Code Playgroud)
现在我时间mean切换功能x和x[inds](I运行mean(randn(2))第一,以避免在任何定时编译凹凸):
@time mean(x)
@time mean(x[inds])
Run Code Online (Sandbox Code Playgroud)
这是一个相同的计算,但正如预期的那样,时间的结果是:
elapsed time: 0.007029772 seconds (96 bytes allocated)
elapsed time: 0.067880112 seconds (80000208 bytes allocated, 35.38% gc time)
Run Code Online (Sandbox Code Playgroud)
那么,对于任意选择inds(以及任意选择的数组和函数),是否存在解决内存分配问题的方法?
julia ×1