java runtime.exec运行越来越慢

b4wnujal  于 2021-07-03  发布在  Java
关注(0)|答案(0)|浏览(293)

当运行另一个命令时,java runtime.exec运行得越来越慢。
我给“runtime.getruntime().exec”计时了大约三天,这个函数花费了越来越多的时间,从0/1毫秒到500多毫秒。。。
但是当我在shell脚本中运行“ipmitoolraw0x3e0x3131”时,时间开销通常是。
谁知道这个问题的原因是什么?谢谢。
代码如下:

String shStr="ipmitool raw 0x3e 0x31 3 1";
 public static List<String> runShell(String shStr) throws Exception {
    List<String> strList = new ArrayList<String>();

        long start_time = System.currentTimeMillis();

    Process process;
    process = Runtime.getRuntime().exec(new String[] {"/bin/sh","-c",shStr},null,null);

        long time1 = System.currentTimeMillis();
        System.out.println("runShell exec time cost" + (time1 - start_time));

    InputStreamReader ir = new InputStreamReader(process
            .getInputStream());
    InputStreamReader stderrReader = new 
    InputStreamReader(process.getErrorStream());

    LineNumberReader input = new LineNumberReader(ir);
    LineNumberReader errInput = new LineNumberReader(stderrReader);

    String line;
    process.waitFor();

    while ((line = input.readLine()) != null) {
        strList.add(line);
    }
    System.out.println("ERROR");
    while ((line = errInput.readLine()) != null) {
        System.out.println(line);
    }

    return strList;
}

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题