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的记录";
就出内存溢出了。。。
[解决办法]
可以借助文件 分批处理啊
[解决办法]