Foxtable(狐表)用户栏目专家坐堂 → 内存——狐表的致命问题,准备入手狐表的慎重了


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

主题:内存——狐表的致命问题,准备入手狐表的慎重了

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


加好友 发短信
等级:四尾狐 帖子:823 积分:6290 威望:0 精华:0 注册:2016/7/8 18:58:00
内存——狐表的致命问题,准备入手狐表的慎重了  发帖心情 Post By:2016/9/17 18:47:00 [只看该作者]

狐表开发的软件,在使用过程中,内存会不断增加,不会释放内存。

只要操作次数达到一定次数系统就会崩溃(如果数据加载多一些,一天会闪退好几次。)

具体原因已经找到:窗口中有绑定到数据表的控件,关闭该窗口不会释放内存。

之前已发帖,也有例子:http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=89101&authorid=0&page=0&star=1

 

狐爸提供的方法:根本无法解决,执行下面代码会马上释放内存,但操作后内存又马上回来,系统依然崩溃,纯粹自欺欺人。

 System.Diagnostics.Process.GetCurrentProcess().MinWorkingSet = new System.IntPtr(5)

 

实在是这个问题太严重,导致系统无法继续使用,才写这样的标题,希望引起注意!

[此贴子已经被作者于2016/9/17 18:48:24编辑过]

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


加好友 发短信
等级:狐神 帖子:5061 积分:13092 威望:0 精华:0 注册:2014/5/15 21:34:00
  发帖心情 Post By:2016/9/17 18:59:00 [只看该作者]

表控件也如此吗?那可不得了。

 回到顶部
帅哥哟,离线,有人找我吗?
鲁吉
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:711 积分:5356 威望:0 精华:0 注册:2013/5/27 9:48:00
  发帖心情 Post By:2016/9/17 19:50:00 [只看该作者]

网上搜来的:
让.NET程序快速释放内存的办法
[DllImport("kernel32.dll")]
        public static extern bool SetProcessWorkingSetSize(IntPtr process, int minSize, int maxSize);

public static void GarbageCollect()
        {
            GC.Collect();
            GC.WaitForPendingFinalizers();
            GC.Collect();
        }

        public static void FlushMemory()
        {
            GarbageCollect();

            if (Environment.OSVersion.Platform == PlatformID.Win32NT)
            {
                Win32.SetProcessWorkingSetSize(System.Diagnostics.Process.GetCurrentProcess().Handle, -1, -1);
            }
        }

NET里面还有一个类可以达到这个效果
   System.Diagnostics.Process.GetCurrentProcess().MinWorkingSet = new System.IntPtr(5);

采用定时释放+窗体打开的时候,效果很好,估计程序占的内存会在20以下

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


加好友 发短信
等级:三尾狐 帖子:705 积分:5411 威望:0 精华:0 注册:2014/3/15 23:14:00
  发帖心情 Post By:2016/9/17 20:15:00 [只看该作者]

用户已被锁定

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


加好友 发短信
等级:九尾狐 帖子:2609 积分:16926 威望:0 精华:11 注册:2011/9/20 16:13:00
  发帖心情 Post By:2016/9/18 8:24:00 [只看该作者]

还好吧。

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2016/9/18 9:07:00 [只看该作者]

 这个倒是没有留意,但是我的系统用了6-7年,没有发现崩溃现象呀.

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


加好友 发短信
等级:七尾狐 帖子:1732 积分:11266 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2016/9/18 9:49:00 [只看该作者]

内存占用大小,这个主要看你的数据加载量。一般也就在150m以下,连续使用软件一个月不退出的也没有崩溃,不过会有可能出现其他莫名的代码问题。这种BUG基本可以忽略了,懒得去深究了。

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2016/9/18 10:36:00 [只看该作者]

我这个论坛,以前是windows 2003+sql server 2005, 4G内存,很稳定。

我后来搬到阿里云,换成windows 2008+sql server 2008,还是4g内存,一开始论坛每天会崩溃一两次,每次重启服务器才能恢复正常,很快发现是内存问题,如是我增加到8g内存,结果还是会崩溃。

实在没办法,后来我只能设置了一下,IIS的应用程序池每天自动回收4次,SQL server每天自动重启3次(分别在6:00,12:30和18:30),总算没问题了。

我不是否定问题,我的意思是pc和andriod都多少都会这样,就是微软自己的服务端软件有时也这一样,可能苹果的ios会完美一点。
这没多年了,Foxtable在上万的企业用户中使用了,并不存在不稳定的问题。
可能你的情况比较特殊,在有彻底解决办法之前,建议:
如果你的窗口比较大,要频繁打开和关闭窗口,而且要长时间不关闭,那就做个计划,定时提醒客户重启foxtable吧,或者定期检查剩余内存,低于一定程度就提示用户重启。
或者改变一下设计思路,常用窗口打开后就不再关闭,之后只是显示和隐藏。
[此贴子已经被作者于2016/9/18 13:32:30编辑过]

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


加好友 发短信
等级:童狐 帖子:281 积分:2264 威望:0 精华:0 注册:2013/12/2 13:34:00
  发帖心情 Post By:2016/9/18 10:43:00 [只看该作者]

事实胜于雄辨,例子证明内存的确会上升。
等会再用VS试一下。


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20160918104227.png
图片点击可在新窗口打开查看


 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目4.foxdb



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


加好友 发短信
等级:六尾狐 帖子:1425 积分:11332 威望:0 精华:0 注册:2008/9/1 22:20:00
  发帖心情 Post By:2016/9/18 12:00:00 [只看该作者]

从狐表出现一直用到现在,还真没遇到过楼主这种情况,数据量特别大以应该考虑分批加载。

 回到顶部
总数 16 1 2 下一页