Foxtable(狐表)用户栏目专家坐堂 → System.OutOfMemoryException


  共有1537人关注过本帖树形打印复制链接

主题:System.OutOfMemoryException

帅哥哟,离线,有人找我吗?
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110497 积分:562369 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/7/24 9:17:00 [显示全部帖子]

如果出现了内存溢出,还继续执行代码,各种数据很大可能都是不正确的,因为内存不足,部分数据会被抛弃。

建议
1、如果没有控制初始加载量(http://www.foxtable.com/webhelp/topics/1268.htm),那么DataTables.Load("INISecondarySchedule")这种用法在加载表格的同时会加载表格所有数据,建议控制一下初始不加载任何数据

2、不要重复的加载卸载表格,这本身也是很耗资源的。已经加载的保管完全没有必要卸载,加条件加载空表即可。或者干脆完全使用SQLcommand加载表格数据,不要使用datatables。

3、如果一次处理的数据还是比较多,建议再分页,比如4个月的数据,按月每次只处理一个月,分4次执行

4、如果类似的这种计划任务比较多,并且都是要处理很多数据的。考虑分为多个项目(程序)使用,一个项目(程序)处理一个任务。这样每个项目(程序)都有独立的运行内存空间,不会互相影响

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110497 积分:562369 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/7/25 9:01:00 [显示全部帖子]

【如果没有加载所有表,仅加载基础的4个表,在任务管理器中任务占用内存170M左右, 在加载完全部107个表(全部为空表)后内存占用250.4M】这个是正常的。

然后如果有10个表,每个表加载5W行数据,那么内存占用【超过450M,甚至到了540M左右】也是正常的。如果可能会由多个任务同时在执行,每个任务处理几个表,每个表加载几万数据,叠加起来内存就上去了。

另外还有任务里定义的变量,比如字典,集合等,也是要耗内存的。如果还有备注列,图片处理等,内存使用更加厉害了

还有关联表、窗口等都要占用内存的。

 回到顶部