NI LabVIEW,CVI,数据采集等产品讨论区

取消
显示结果 
搜索替代 
您的意思是: 

为啥手动最小化前面板运行内存会骤降,而程序更改前面板状态至最小化却没效果

有个程序,刚打开运行时占内存140M左右,手动把前面板最小化就会降至20M左右,把前面板还原显示后内存会逐渐升到60M左右,而如果我在程序里添加 一个指令,就是按一个按钮让前面板最小化(通过前面板状态属性节点),内存却不会变化,这是为什么呢?下面大概讲下我的程序内容:

1、通过TCP从服务器读取不同设备的当前运行数据
2、在主VI前面板放置一个子面板,通过按钮切换查看不同设备的运行状态(每个设备的状态数据做成一个子VI,显示内容包括XCONTROL、表格、指示灯)

0 项奖励
1 条消息(共 6 条)
5,437 次查看

Looks like the property node doesn't work right.

try to hide the 子面板 when minimize.

 

George Zou
0 项奖励
2 条消息(共 6 条)
5,435 次查看

这个我已经试过了,还是没有变化

0 项奖励
3 条消息(共 6 条)
5,421 次查看

Windows操作系统为运行的进程分配随机存取存储器(RAM),被分配给进程的物理RAM叫做工作区,访问工作区的数据是相当快的。如果一个进程需要使用的内存大小超过操作系统分配给他的大小,它可以使用硬盘作为虚拟内存。为了能够使用虚拟内存里的数据,操作系统必须把数据从虚拟内存传到RAM中,这个过程叫做内存分页。访问工作区的数据是极其快的,而访问虚拟内存的数据要相对慢一些,这是因为磁盘操作要慢于RAM操作,由于内存分页花费了额外的时间。 当一个应用程序最小化了它的顶层窗口,操作系统减少分配给它的工作区大小,释放RAM来给前台进程使用。如果一个最小化的程序需要经常性地访问虚拟内存,那么它的性能将会受到一定的影响。你可以通过以下这个链接来了解这个具体的执行过程 Microsoft KnowledgeBase 293215: The working set of an application is trimmed when its top-level window is minimized. 这是一个预期的行为,它不是LabVIEW的功能而是Windows的功能。在其它的应用程序上也会有类似的表现,例如Word或是计算器。当把相同的程序最大化以后,你会发现分配给它的内存并没有恢复到原来的大小,这是因为在开始启动一个应用程序的时候,Windows会分配一个超过所需大小的内存给应用程序,但是当一个最小化的程序被重新最大化以后,Windows会给它分配一个更合理大小的内存。如果由于某种原因这个过程发生问题,微软KB解释了在程序最小化的时候,如何来避免工作区被修改。你可以通过修改Background Services 中的处理器调度选项来修改这一行为,在 Control Panel»System»Advanced»Performance»Advanced»Processor Scheduling。 备注: 改变处理器调度可能会改变系统的性能

0 项奖励
4 条消息(共 6 条)
5,415 次查看

Use Windows API then, it should be the same as manually minimize a window.

 

 

George Zou
0 项奖励
5 条消息(共 6 条)
5,394 次查看

Windows API Function Utilities (32-bit) for LabVIEW:

http://www.ni.com/example/29935/en/

 

George Zou
0 项奖励
6 条消息(共 6 条)
5,376 次查看