0

ProcessBuilder を使用して、JAVA 内から外部 C コードを実行します。(コンパイルされた) C コードは、出力を生成するのに約 1 秒かかります - 比較的遅いです。

私が気づいたのは、C コードが完了するまで、BufferedReader Readline がかなり CPU を集中的に使用しているように見えることです。また、外部 C コードを 5 秒ごとに実行する必要があるため、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