在开发软件的时候遇到个问题,首先的情况是应用程序退出时,图标会在任务栏停顿很久,甚至卡死。后面多方面处理之后,情况有所好转,但是软件图标依旧会在任务栏存在数十秒,这个停顿的时间与应用程序运行的时间成正比。(比如刚刚打开应用程序,然后在一两分钟内退出,那么退出很快,图标也不会停留。) 相信这应该不会是个例,希望有相关经验的朋友说说的你们的想法,探讨一下,扩展下解决思路。下面是我调试中的一些情况与截图:
刚开启时候状态:
可以看出应用程序占用的内存为183M,cup使用率为42%;
然后我数据采集循环全部暂停,cup使用率降低为0,可以理解为系统所有线程处于等待状态。
然后最小化3小时后,结果如下图:
内存占用约5M,CPU使用率依旧为零;
这时候,根据我查阅的相关资料后,得出的结论是,window系统将原先处在内存中的子函数,以及很多前面板的数据,转移到了虚拟内存中。
这样造成的问题就是,每次我重新最大化操作软件的时候,界面就会呈现大片黑 {MOD},并卡滞数秒钟,然后前面板才呈现,进一步点击界面上的枚举类型,或者菜单栏时,又会卡滞一两秒,之后就不再卡滞。但是这个时候如果退出程序,就会有程序图标停留在任务栏数十秒的情况。
程序框图片段如下图:
从程序框图可以看出,如果其他线程没有运行结束,这个程序的主界面是不会关闭的的,但是程序图标是在主界面关闭之后,已经停留数十秒。
另外,不但我编写的应用程序会如此,
labview开发环境也有内存锐减的情况,如下图:
在我打开labview并打开项目的时候,所占内存为300M左右,但是当我最小化labview,放置约三小时后,labview开发环境所占内存变成了10M。但我最大化labview,并点击其界面是,会卡数十秒钟,甚至数十秒。
我的电脑为,T420i,系统为win7家庭版升级到专业版。32位。
同一个程序,我安装到另一台台式机,win7-64位系统,8G内存,没有以上问题。
但是工控机没有这个性能,希望大家帮忙看看,提提建议。
引用句柄没消掉的话,应不会跟运行时间有关系吧,现在的情况是,一两个小时没事,退出很顺畅,运行三四个小时的话,退出就不顺畅了,而且在另外一台配置比较高的台式机上,运行48个小时,退出也是一两秒中就完成了。
一周热门 更多>