【问题标题】:how to specify the amount of RAM to use for a script in linux如何在 linux 中指定用于脚本的 RAM 量
【发布时间】:2021-12-30 04:01:50
【问题描述】:

假设我想编辑文件夹中的所有文件,更改每个标题。我正在使用这个脚本:

对于 $(ls $1); 中的东西;做 sed -i '1c\SNP A2 A1 beta N P' $thing 完成

问题是它需要很多时间。所以,我想找到一种方法为这个脚本分配更多的内存,以便快速完成。 有可能吗?

【问题讨论】:

  • 不是ram的问题,反正不能“给更多的ram”,可以改为限制ram(可能是其他一些进程)。
  • 感谢您的回答

标签: linux time ram editing


【解决方案1】:

我想找到一种方法为这个脚本分配更多的内存,以便快速完成。有可能吗?

没有。您使用的工具,bash 枚举文件和 sed 编辑它们,占用他们工作所需的 RAM。即使他们有办法给他们更多的内存,他们也不能使用更多的内存。

您可以并行运行 sed 操作。这会在您的机器上使用更多内核,并且可能会更快完成。在循环中的每个命令后放置一个& 字符。像这样的。

for thing in $(ls $1); do 
  sed -i '1c\SNP A2 A1 beta N P' $thing &
done

【讨论】:

    【解决方案2】:

    使用 GNU Parallel,您可以控制并行运行的数量:

    doit() {
      sed -i '1c\SNP A2 A1 beta N P' "$1"
    }
    export -f doit
    ls $1 | parallel -j5 doit 
    

    调整-j5,直到找到能提供最大吞吐量的数字。

    【讨论】:

      猜你喜欢
      • 2017-05-29
      • 2015-01-21
      • 1970-01-01
      • 2013-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-27
      相关资源
      最近更新 更多