Java 使用小程序Servlet通信处理大数据时出现问题
我有一个向Servlet发出请求的小程序。在servlet上,它使用PrintWriter将响应写回Applet:Java 使用小程序Servlet通信处理大数据时出现问题,java,servlets,applet,printwriter,Java,Servlets,Applet,Printwriter,我有一个向Servlet发出请求的小程序。在servlet上,它使用PrintWriter将响应写回Applet: out.println("Field1|Field2|Field3|Field4|Field5......|Field10"); 大约有15000条记录,因此out.println()执行大约15000次 问题是,当小程序从Servlet获得响应时,处理记录大约需要15分钟。 我放置System.out.println,处理在5000左右暂停,15分钟后继续处理,然后完成 有没有
out.println("Field1|Field2|Field3|Field4|Field5......|Field10");
大约有15000条记录,因此out.println()执行大约15000次
问题是,当小程序从Servlet获得响应时,处理记录大约需要15分钟。
我放置System.out.println,处理在5000左右暂停,15分钟后继续处理,然后完成
有没有人遇到过类似的问题?servlet执行大约需要2秒钟。因此,浏览器/小程序似乎太慢,无法处理记录
这是小程序代码。有时它只在第一个System.out上停止,有时在第二个System.out上停止
while ((line = in.readLine()) != null) {
System.out.println("Reading from stream....");
datavector.add(line);
System.out.println("Vector size="+datavector.size()+" Line added="+line);
}
任何想法都值得赞赏
谢谢。您的问题是否与“处理在5000条记录左右暂停,然后在15条记录之后自行开始”有关?或者小程序的处理速度很慢
如果您编写一些代码片段,这将非常有用。从
循环中删除系统.out.println()
行。您的per saldo调用System.out.println()
30000次。这将大大增加开销。如果需要,只需在循环之前和之后各放置一个。嗨,井处理大约在5000分钟后停止,然后大约在15分钟后再次开始。那么,为什么处理会停止?Java在做什么?有没有提高性能的方法?我猜在大约5000条记录之后,系统正在尝试GC一些未使用的对象。我认为在IE浏览器中,若你们打开java控制台,它有显示内存使用情况等的命令,所以你们可能应该试试。或者,只需在applet中定义一个main方法,并将其作为java应用程序运行,然后查看是否停止5000条记录。这可能会给您一些提示,问题是与浏览器有关还是与整个代码有关。让我们知道你发现了什么。好的,我上个星期就开始工作了。问题是代码正在执行非常繁重的字符串操作。代码在嵌套循环中多次执行类似str=str+“name1”+“name2”的操作。通过切换到StringBuffer,处理时间从20分钟变为15秒!!!谢谢你的回复。