相关疑难解决方法(0)

在Julia中索引数组时避免内存分配

问题:我想在不触发内存分配的情况下索引到数组,尤其是在将索引元素传递给函数时.从阅读朱莉娅文档,我怀疑答案围绕使用该sub函数,但不能完全看到如何...

工作示例:我构建了一个Float64(x)的大向量,然后是每个观察的索引x.

N = 10000000
x = randn(N)
inds = [1:N]
Run Code Online (Sandbox Code Playgroud)

现在我时间mean切换功能xx[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

13
推荐指数
2
解决办法
1893
查看次数

标签 统计

julia ×1