日期:2014-05-19  浏览次数:20719 次

java 取大量数据 内存溢出问题 有没有大侠出出好方法来解决啊
取上百万记录扔到LIST里面,内存就溢出,有没有什么好的解决方法啊
javax.servlet.ServletException
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:515)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:422)
org.apache.struts2.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:99)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)


root cause 

java.lang.reflect.InvocationTargetException
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:404)
com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:267)

------解决方案--------------------
又没有具体详细的需求,场景
没法整啊
------解决方案--------------------
加内存,最直接。


你为什么要读这么多数据到内存里呢?分批处理不行吗?
------解决方案--------------------
比如:List list = "从数据库取1000W的记录";
就出内存溢出了。。。
------解决方案--------------------
可以借助文件  分批处理啊
------解决方案--------------------
引用:
加内存,最直接。


你为什么要读这么多数据到内存里呢?分批处理不行吗?

做测试,呵呵
------解决方案--------------------
没办法 你家机器厉害点
------解决方案--------------------
没别的办法,只有分页处理。

------解决方案--------------------
引用:
引用:
加内存,最直接。


你为什么要读这么多数据到内存里呢?分批处理不行吗?

做测试,呵呵



哪有这么测试的?什么目的呢?
------解决方案--------------------
可以借助文件 分批处理是可行的
------解决方案--------------------
分批处理 我也遇到个问题呢 tomcat 加载了java web系统
tomcat运行越来越慢 后来就是内存不足了 跟这个差不多的问题 
java真的是麻烦的东东
------解决方案--------------------
"取上百万记录扔到LIST里面,内存就溢出":那就不要一下子取上百万记录扔到LIST里面。
------解决方案--------------------
一下子去百万记录? 哪种语言可以吃的消 
------解决方案--------------------
错了:应该说多少内存够用的
------解决方案--------------------
使用分页 SQL 每次取 5001 条,如果取出的结果大于 5000,那说明还存在下一页,移除最后一条。处理完后接着取下一页,直到取到的数据少于等于 5000 条就不用再取下一页了。
------解决方案--------------------
采取类似分批次的方式处理,每次处理10000。

你要考虑的就是是否存在事务及如何保证事务。


------解决方案--------------------
建议分页处理吧...
------解决方案--------------------
想问下有什么需求需要一下要取出100W条数据.
   分页吧.
------解决方案--------------------
这效率...就算内存不溢出...
------解决方案--------------------
建议分页弄了