我正在创建一个小工具来测量java servlet的运行时间。 servlet在输出流上提供EPS类型的图像(因此,如果我从浏览器调用servlet下载EPS图像或弹出下载窗口 - 取决于设置)。
我想用我的工具测量servlet的运行时间:我将servlet称为10000次,然后计算平均值。
我的问题是:我想避免计算昂贵的I / O操作,因此我希望每个servlet调用都能下载EPS,但不想保存他们在我的硬盘上。
我写了这段代码:
long startTime = System.nanoTime();
try {
URLConnection connection = new URL(url + "?" + query).openConnection();
connection.setRequestProperty("Accept-Charset", charset);
InputStream response = connection.getInputStream();
} catch (Exception e) {
System.out.println("Connection failed!");
e.printStackTrace();
System.exit(0);
}
long endTime = System.nanoTime();
long deltaTime = endTime - startTime;
它能做我想要的吗?或者我应该对imputsream做些什么?每个servlet调用都会下载EPS映像吗?我知道他们没有得救,但他们下载了吗?
谢谢!
答案 0 :(得分:0)
只需读取输入流并丢弃数据:
byte [] buffer = new byte[4096];
while (input.read(buffer) != -1);