我有一个外部脚本,我在Servlet
内启动,然后阅读stdout
,最后提供要下载的文件。
外部脚本是phantomjs
,但这对于这个问题无关紧要。重要的只是我读取和写入stdout流,如下所示:
Process process = new ProcessBuilder("phantomjs", "rasterize.js", url);
InputStream is = process.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
OutputStream httpStream = response.getOutputStream();
int bytes;
while ((bytes = br.read()) != -1) {
httpStream.write(bytes);
}
结果:它可以正常工作,但实际上只需要10秒就可以将{500}实际写入OutputStream
。
为什么呢?我怎样才能提高性能?