.net 取大数据时服务器可用内存远远没有达到峰值可是报内存溢出,除了分页查询还能怎么处理?

起个名咋那么难呢 2016-01-05 04:01:15
如题,望大神指点一二
...全文
173 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Poopaye 2016-01-06
  • 打赏
  • 举报
回复
你有1G可用内存,这时有一个操作要申请2G的内存,就会出这个错 你应该调试下这个错误发生的位置,为何会要这么多内存 .net的集合(比如List)在自动增长时一般会要求当前容量的2倍 如果可以的话,使用固定长度或者自定义的集合
iAaronHua 2016-01-06
  • 打赏
  • 举报
回复
引用 6 楼 NetVS 的回复:
[quote=引用 4 楼 iAaronHua 的回复:] 这个其实还要看你的数据对象是什么?在做什么操作。 比如我就遇到过,对3、4百兆数据的DataTable做XML序列化,内存可以飙到1个多G(据说这个是.NET Framework自带XML序列化的一个小BUG
我是直接使用的DataTable 向txt 文件写数据,[/quote] 那你是写之前程序占400M内存,然后写TXT,然后报错了? 如果是这样,那你要看跟一下,看是什么操作导致内存飙升。还有,写文件的缓存是不是太大,可以考虑缓存设小一点,或者直接写文件,不用缓存。
孤独de猫 2016-01-06
  • 打赏
  • 举报
回复
估计不.net的问题。可能是你的程序写有的问题。微软的东西,还是比较靠谱的。
  • 打赏
  • 举报
回复
引用 4 楼 iAaronHua 的回复:
这个其实还要看你的数据对象是什么?在做什么操作。 比如我就遇到过,对3、4百兆数据的DataTable做XML序列化,内存可以飙到1个多G(据说这个是.NET Framework自带XML序列化的一个小BUG
我是直接使用的DataTable 向txt 文件写数据,
  • 打赏
  • 举报
回复
引用 1 楼 starfd 的回复:
不是你有100M内存,然后你这一个程序就可以用100M内存的……
我也不指望说6个G能够全部使用,起码让使用1个G 也行
iAaronHua 2016-01-06
  • 打赏
  • 举报
回复
这个其实还要看你的数据对象是什么?在做什么操作。 比如我就遇到过,对3、4百兆数据的DataTable做XML序列化,内存可以飙到1个多G(据说这个是.NET Framework自带XML序列化的一个小BUG
  • 打赏
  • 举报
回复
引用 1 楼 starfd 的回复:
不是你有100M内存,然后你这一个程序就可以用100M内存的……
那怎么能设置一下,让使用内存达到最大化呢,现在我遇到的问题就是,服务器的可用内存大概有6个G,实际上我取数据量超过400M就会出现内存溢出
一枚大帅哥 2016-01-05
  • 打赏
  • 举报
回复
异步加载,当你下拉你的滚动条时,每下拉N个像素,则多请求一些数据加在Table 末尾。 其实还是分页的逻辑。数据太多了就一次不要加载完呗。不然还能怎么样?
  • 打赏
  • 举报
回复
不是你有100M内存,然后你这一个程序就可以用100M内存的……

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧