- 前面板的控件会占用很大的内存,所以,在不需要打开前面板的时候尽量不操作,减少属性节点的使用。因为属性节点关联到控件,会调用内存中,增加开销。
- 没有必要的时候不要设置VI的重入属性。重入会给VI执行时分配一个副本,增大开销。
- 使用内存管理函数,"请求释放内存 函数"。
- 使用移位寄存器,这样强制使用同一内存区域进行数据传递。
- 以下所列的是在建立VI中需要考虑的一些问题。尽管它们并不代表了需要考虑的全部,但它们的确是进行优化的一些基本方法。
- 在任何情况下,将VI分解为子VI.当子VI不再被执行的时候,LabVIEW能够释放它的内存。
- 限制使用全局或者局部变量。使用全局和局部变量会造成LabVIEW为数据建立备份。
- 在需要时才在打开的前面板上显示大型数组和字符串。前面板的显示控件需要复制它们显示的数据。
- 属性节点会造成子VI的前面板滞留在内存中,这样会增加内存的使用。因此,如果子VI的前面板不被显示,不要在子VI中使用属性节点。
- 当在数组中使用相同的数据类型,并在传输数据进入子VI时使用强制小数点位置。当LabVIEW改变数据类型,输出需要一个新的缓存。
- 当设计流程图,要注意任何输入的大小与输出的大小不同的地方。举例,频繁的增加数组或者字符串的大小将造成数据的多次复制。这将造成LabVIEW使用的内存大大增加,并造成内存碎片。
- 在另一篇文章看到一点很实用:数据处理中使用数组。由于采集的数据本来就很大,在循环中又使用创建数组函数,由于该函数没有指定大小,每次加入新的数据时,要不断调整增加数组大小,但是labview不能判断原来的数据是否还有其他用处,所以每次调整数组大小都会复制一份新数据,这样内存开销非常大。
labview可能性内存占用/泄露,内存优化经验总结
最新推荐文章于 2024-10-12 22:37:03 发布