0

使用 ProcessBuilder 从 JAVA 中运行外部 C 代码。(编译的)C 代码需要大约 1 秒才能产生输出 - 相对较慢。

我注意到的是,在 C 代码完成之前,BufferedReader Readline 似乎是相当 CPU 密集型的。而且由于我必须每 5 秒运行一次外部 C 代码,因此 CPU 利用率会增加。这是readline代码:

        BufferedReader br = null;
        try {
            br = new BufferedReader(new InputStreamReader(in));
            String line = null;
            while ( (line = br.readLine()) != null) {
                this.pw.add(line);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                br.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

我可以发布整个代码 - 但是,它与您在此页面上看到的非常相似。

这是 JProfiler 屏幕截图。

有什么建议吗?

4

0 回答 0