bash: pré-aloca memória para array

3

A memória pode ser pré-alocada em bash para matrizes de um tamanho definido? Eu estou iterativamente adicionando strings a uma matriz (declarada por declare -a arr ) em um loop ( arr+=("$str") ), e estou querendo saber se o desempenho seria melhorado pré-alocando memória do tamanho apropriado (por exemplo, 10.000 elementos contendo strings não maiores que 512 caracteres).

    
por user001 18.09.2017 / 22:04

1 resposta

5

Não, isso não é possível em bash .

Para acelerar seu script, repita o fluxo e a lógica do seu programa. É muito raramente necessário ler grandes quantidades de dados em uma variável ou matriz.

A maioria das ferramentas Unix são filtros que permitem enviar dados de um estágio de um pipeline para o próximo sem armazenar muito dos dados iniciais ou intermediários na memória (geralmente apenas uma linha de um arquivo de cada vez). É incomum ler um conjunto de dados em uma variável e, em seguida, manipulá-lo no shell. É mais comum executar transformações em dados, possivelmente agregando partes dele.

Se você está lidando com variáveis de shell com mais do que algumas palavras, então há uma maneira mais eficiente de fazê-lo.

    
por 18.09.2017 / 22:14