Bash。是否可以为特定的应用程序保留内存?

问题描述 投票:0回答:1

在我的一个bash函数中,我使用下面的代码将ImageMagick的转换输出通过管道发送到tesseract-ocr,以便转换为文本。

for a in ocr/*.tif*; do
  echo $a $(date +%T)
  for i in 2 4 8; do
    echo $a >> $i.txt
    convert $a -resize "$i"00% - | tesseract stdin q 2> /dev/null
    cat q.txt >> $i.txt
  done
  mv $a dun/
done

只要我在函数运行时不做其他任何事情,就能正常工作。

但任何其他用途都会导致 ImageMagick 生成临时文件,这使每个输入文件的处理时间增加了一倍多。我想这是因为它反对一些新的应用程序在转换运行时使用内存。在bash中是否有什么方法可以保留一部分内存供一个应用程序专用?

bash memory pipe tesseract imagemagick-convert
1个回答
0
投票

显然,"nice "命令是解决这个问题的工具。我是在注意到这个命令的处理时间后发帖提问的。

convert $a -resize "$i"00% - | tesseract stdin q 2> /dev/null

从系统没有其他活动的情况下,每个输入文件约1.5分钟,变成了当我同时对我的网页浏览器进行多张截图时,每个输入文件约3.3分钟。

所以我把命令改为

sudo nice -n -20 convert $a -resize "$i"00% - | tesseract stdin q 2> /dev/null

为最新一批,看到我的平均输入文件时间从1分钟左右变成了1.25分钟,同时再次对浏览器进行多次截图。

© www.soinside.com 2019 - 2024. All rights reserved.