如何加快二进制调用?

时间:2017-05-24 09:44:49

标签: python binary call

实际上我使用的字典标记器只是作为二进制文件分发的。它获取一个字符串作为输入,然后打印结果。我在python中找到了一个使用Popen的包装器,它运行良好,但每次调用需要1000毫秒才能完成(与输入无关)。我想加快速度,因为我需要多次调用这个过程。

一个好方法是在我的python程序的整个执行期间保持进程活着,但我不知道该怎么做。

这是包装代码的一部分

_input = sentences #Actually a string with "\n" escapes

p = Popen([self._cmd_path],
                shell=True, stdin=PIPE, stdout=PIPE, stderr=PIPE)

(stdout, stderr) = p.communicate(_input)

# Check the return code.
if p.returncode != 0:
    print stderr
    raise OSError('Command Failed')

_output = stdout.decode(encoding)

#...other elaborations with the output

这是我打电话的脚本:

#!/bin/sh

# Set paths

BIN=xxx/bin
CMD=xxx/cmd
LIB=xxx/lib

OPTIONS="-opt1 -opt2 -opt3"

EXAMPLER1=${CMD}/file1.perl
EXAMPLER2=${BIN}/binary-file
EXAMPLER3=${LIB}/file2
EXAMPLER4=${LIB}/file3

$EXAMPLER1 -i -a $EXAMPLER4 $* |
$EXAMPLER2 $OPTIONS $EXAMPLER3

0 个答案:

没有答案