以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]为何我编写的程序,运行5小时候会说内存耗尽?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=102239)

--  作者:小美菜
--  发布时间:2017/6/15 18:56:00
--  [求助]为何我编写的程序,运行5小时候会说内存耗尽?
为何我编写的程序,运行5小时候后说内存耗尽?我的程序会按时间自动运行一些查询、收集数据等模块,但运行5个多小时候,经常会报告说什么内存溢出。程序运行时,不会弹出窗口,5个多小时后,按关闭按钮居然管不了!通过任务管理器强制关闭程序,会在屏幕上出现小区域闪屏正方形。我想知道这是什么原因!!!
--  作者:有点色
--  发布时间:2017/6/15 21:06:00
--  

 调出任务管理器,看看该进程的内存是不是一直在增加。如果是,说明你调用内存以后没有把内存释放。

 

 你代码本身有问题,尽量检查那些耗时的操作。逐个测试。


--  作者:小美菜
--  发布时间:2017/6/15 21:45:00
--  
内存没有增加,不知道明天上班时间是否。耗时的操作肯定多,要不然就不会用数据库了
--  作者:有点色
--  发布时间:2017/6/15 21:52:00
--  
以下是引用小美菜在2017/6/15 21:45:00的发言:
内存没有增加,不知道明天上班时间是否。耗时的操作肯定多,要不然就不会用数据库了

 

间隔一段时间看看你的内存,看是否持续增加,如果内存不增加,不可能内存耗尽的。

 

你肯定写有代码使用了资源,最后没有释放资源。


--  作者:小美菜
--  发布时间:2017/6/16 11:35:00
--  
是:System.OutOfMemoryException;内存没有增大
--  作者:有点蓝
--  发布时间:2017/6/16 11:55:00
--  
出错时项目占用的内存是多大?如果是1G左右,那就差不多了。

如果是操作同一个表,Foxtable能分配的极限内存应该在950M左右。
可以看一下我这里的分析:http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=91737&skin=0

你这种数据采集,建议不要使用主表(甚至窗口表),而是通过临时表直接写数据库。每次操作完毕后调用GC.Collect

建议数据采集和数据使用分开不同的项目应用


--  作者:有点色
--  发布时间:2017/6/16 12:25:00
--  
以下是引用小美菜在2017/6/16 11:35:00的发言:
是:System.OutOfMemoryException;内存没有增大

 

具体去看,是哪段代码的问题。你代码编写有问题。