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