首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

java 取大量数据 内存溢出有关问题 有没有大侠出出好方法来解决

2012-12-14 
java 取大量数据 内存溢出问题 有没有大侠出出好方法来解决啊取上百万记录扔到LIST里面,内存就溢出,有没有

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条数据.
   分页吧.
[解决办法]
这效率...就算内存不溢出...
[解决办法]
建议分页弄了

热点排行