use*_*001 3 performance bash memory array
可以bash为定义大小的数组预先分配内存吗?我declare -a arr在循环 ( arr+=("$str")) 中迭代地将字符串添加到数组(由 声明),并且想知道是否可以通过预分配适当大小的内存(例如,包含不大于 512 个字符的字符串的 10,000 个元素)来提高性能。
不,这在bash.
要加速您的脚本,请尝试重新思考您的程序流程和逻辑。它是非常很少有必要在一个变量或数组海量数据读取。
大多数 Unix 工具都是过滤器,它允许您将数据从管道的一个阶段发送到下一个阶段,而无需在内存中存储大量初始或中间数据(通常一次只是文件中的一行)。将数据集读入变量然后在 shell 中对其进行操作的情况并不常见。更常见的是对数据运行转换,同时可能聚合其中的一部分。
如果您发现自己在处理包含多个单词的 shell 变量,那么很可能有一种更有效的方法。