Evite alocação de memória ao indexar uma matriz em Julia

Pergunta, questão: Eu gostaria de indexar em uma matriz sem disparar a alocação de memória, especialmente ao passar os elementos indexados para uma função. Ao ler os documentos de Julia, suspeito que a resposta gire em torno do uso dosub função, mas não consigo ver como ...

Exemplo de trabalho: Eu construo um grande vetor deFloat64 (x) e, em seguida, um índice para todas as observações emx.

N = 10000000
x = randn(N)
inds = [1:N]

Agora eu tempomean função sobrex ex[inds] (Eu corromean(randn(2)) primeiro para evitar irregularidades do compilador no tempo):

@time mean(x)
@time mean(x[inds])

É um cálculo idêntico, mas, como esperado, os resultados dos tempos são:

elapsed time: 0.007029772 seconds (96 bytes allocated)
elapsed time: 0.067880112 seconds (80000208 bytes allocated, 35.38% gc time)

Portanto, existe uma maneira de contornar o problema de alocação de memória para escolhas arbitrárias deinds (e escolha arbitrária de matriz e função)?

questionAnswers(2)

yourAnswerToTheQuestion