我有两个大字符串数组(每个都有 ~90000 elems)。
我用命令
创建它们。set -A
而且我需要弄清楚第一个数组中的哪些字符串在第二个中没有相等的字符串。
我的代码:
for i in {0..${#hard_drive_files[*]}}; do
has_reference=false
for j in {0..${#files_in_db[*]}}; do
if [[ ${files_in_db[j]} == ${hard_drive_files[i]} ]]; then
has_reference=true
break
fi
done
if [[ $has_reference == false ]]; then
echo "${hard_drive_files[i]}"
fi
done
这部分代码“吃掉”了太多的内存。
在执行结束时已用内存的值约为 80000 MB
在这部分代码之后,我尝试归档一些文件但得到cannot fork [Cannot allocate memory]
这样的问题有解决方案吗?
PS kshVersion=Version AJM 93t+ 2010-02-02
为了计算出使用了多少 ram 内存,我执行free -m