讨论一下:WINDOWS平台下的组态软件真能365*24小时不间断运行吗? 点击:807 | 回复:3



死亡骑士

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 1774回
  • 年度积分:0
  • 历史总积分:2630
  • 注册:2006年7月17日
发表于:2009-03-12 15:30:03
楼主

最近做的一个工程,组态软件是采用国产的,操作系统是WINDOWS XP,这个客户很刁钻,很二,一定要求该软件能不间断运行,也就是说,一般的时候都不关电脑,原来我也认为不会有什么影响。

但昨天,客户那边突然说,软件界面上一项功能不能使用,我起初以为是编程的问题,在公司模拟了半天,没有发现客户说的异常现象。无奈,只有亲自到现场,才发现程序运行极慢,确切地说是整个系统运行地极慢。一问才知道,该软件已经不间断运行了一个多星期了。再看任务管理器,PF使用率2.06G!!!(实际物理内存才1G)。重启系统后一切正常。跟那个SB客户解释,他不听,直说是要不间断运行。靠!!!

无奈,只能在网上下载了一个“黄金内存”的程序,设定自动清理回收内存。但能不能起作用,真的还不好说。

 

WINDOWS平台下的组态软件真的能像它们广告中说的那样365*24小时不间断运行吗?就算它们可以,windows平台都够呛啊?要不怎么那么多服务器都是UNIX的呢?




死亡骑士

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 1774回
  • 年度积分:0
  • 历史总积分:2630
  • 注册:2006年7月17日
发表于:2009-03-12 16:07:57
1楼
附录:内存泄漏的发生方式

1. 常发性内存泄漏。发生内存泄漏的代码会被多次执行到,每次被执行的时候都会导致一块内存泄漏。

2. 偶发性内存泄漏。发生内存泄漏的代码只有在某些特定环境或操作过程下才会发生。常发性和偶发性是相对的。对于特定的环境,偶发性的也许就变成了常发性的。所以测试环境和测试方法对检测内存泄漏至关重要。

3. 一次性内存泄漏。发生内存泄漏的代码只会被执行一次,或者由于算法上的缺陷,导致总会有一块且仅有一块内存发生泄漏。

4. 隐式内存泄漏。程序在运行过程中不停的分配内存,但是直到结束的时候才释放内存。严格的说这里并没有发生内存泄漏,因为最终程序释放了所有申请的内存。但是对于一个服务器程序,需要运行几天,几周甚至几个月,不及时释放内存也可能导致最终耗尽系统的所有内存。所以,我们称这类内存泄漏为隐式内存泄漏。



什么是系统资源?

当应用程序在Windows中运行时,Windows必须实时"跟踪"该应用程序的运行,并保留与之相关的许多信息,如按钮、光标、菜单的位置和位图、窗口的状况等,这些信息由Windows保留在一种叫堆的内存块中,堆的英文为Heap。简单地说,堆是采用特殊机制管理的内存块。由Windows的一个系统内核User.exe管理的堆叫做User资源堆(User Resource Heap),由另一个系统内核Gdi.exe管理的堆叫做GDI资源堆(Graphical Device Interface Resource Heap,简称GDI Resource Heap),User资源堆和GDI资源堆合称为系统资源堆(System Resource Heap),习惯上就把它们叫做系统资源(System Resource)。

  微软将Windows的系统资源(堆)分为五个堆,其中User资源堆为三个,而GDI资源堆为两个。

  三个User资源堆分别是:16位的用户堆(User Heap,64KB);32位的窗口堆(Windows Heap,2MB);32位的用户菜单堆(User Menu Heap,2MB)。

  两个GDI资源堆分别是:16位的GDI堆(GDI Heap,64KB);32位的GDI堆(GDI,2MB)。

  从这里的系统资源分类和大小我们应该明白,不管CPU是P4还是486,内存是8M还是1G,所有Windows的用户都拥有同样大小的系统资源(堆),用户不能自已增加或减少系统资源的大小,这是由操作系统决定的,与硬件档次没有任何关系。

  Windows的User资源堆和GDI资源堆的可用(Free)空间称为可用 User资源和可用GDI资源,Windows中以百分数表示它们,用户可以选择 "开始/附件/系统工具/系统信息",来实时查看它们的大小。

无(LX)

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 64回
  • 年度积分:0
  • 历史总积分:149
  • 注册:2007年4月28日
发表于:2009-04-03 10:49:49
2楼

用易控组态软件,可以保证你24小时连续运行。易控用的是.net平台,利用了微软的内存释放技术,可以很好的解决内存泄漏和DLL梦魇。

kv47sn

  • 精华:0帖
  • 求助:1帖
  • 帖子:5帖 | 15回
  • 年度积分:1
  • 历史总积分:37
  • 注册:2008年12月18日
发表于:2010-10-31 17:29:14
3楼
学习了,看来用户的刁钻还使我们不能回避问题,只有面对,从这个意义上说是积极的。

热门招聘
相关主题

官方公众号

智造工程师