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

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

VI Meomory Usage问题

我有一个子程序,调用了dll文件,整个程序的运行非常慢,放在主程序运行需要70s,但是单独运行只需要40s就能完成。我发现VI属性内的Memory Usage显示的 Data的大小达到了4G,请问这是什么原因?有什么解决的办法吗?

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

这是您程序结构问题,占用计算机资源过大,您可以参考以下方法来优化:

  • 在任何情况下,将VI分解为子VI.当子VI不再被执行的时候,LabVIEW能够释放它的内存。
  • 限制使用全局或者局部变量。使用全局和局部变量会造成LabVIEW为数据建立备份。
  • 在需要时才在打开的前面板上显示大型数组和字符串。前面板的显示控件需要复制它们显示的数据。
  • 属性节点会造成子VI的前面板滞留在内存中,这样会增加内存的使用。因此,如果子VI的前面板不被显示,不要在子VI中使用属性节点。
  • 当在数组中使用相同的数据类型,并在传输数据进入子VI时使用强制小数点位置。当LabVIEW改变数据类型,输出需要一个新的缓存。
  • 当设计流程图,要注意任何输入的大小与输出的大小不同的地方。举例,频繁的增加数组或者字符串的大小将造成数据的多次复制。这将造成LabVIEW使用的内存大大增加,并造成内存碎片。
0 项奖励
2 条消息(共 2 条)
4,113 次查看