找回密码
 注册
LabVIEW+单片机学习套件全套教程资料下载[免费]LabVIEW论坛精华列表贴USB0816数据采集卡《LabVIEW宝典》
LabWindows/CVI论坛精华贴NET0816以太网数据采集卡RC0210远程设备授权系统 关闭关停锁定打开设备 户外分布式数据采集
NET1624低速高精度以太网数据采集卡WIFI0824SD无线WIFI网络数据采集卡脱机运行 SD存储 小尺寸微型 串口采集远程采集 安卓 手持移动采集 纪录仪
查看: 949|回复: 3

[labview求助] 子vi里有xy图会占用大量内存空间吗

[复制链接]
发表于 2010-6-29 15:16:19 | 显示全部楼层 |阅读模式
问题如题,请高手高手高高手回答,谢谢!!!
发表于 2010-6-29 16:06:29 | 显示全部楼层
个人认为这跟程序架构有很大关系,如果调用完成了它应该会释放。
回复 顶

使用道具 举报

发表于 2010-7-1 10:04:19 | 显示全部楼层
本帖最后由 飞雨天 于 2010-7-1 10:06 编辑

     首先呢,xy图对内存的占用要看输入给xy图的数据的,xy不过是个容器而已,问容器本身占用多大内存,没有任何意义。
     其次,子vi中如果有xy图,并且xy连接到connector pannel,那么,不管主vi中是否要用到该子vi输出,它都会开辟内存。反之,如果不是连接到connector pannel,在子vi不打开的情况下,不占用内存,或者,子vi运行结束会自动释放内存。
     说到自动释放,那可能会问,主vi结束的时候,子vi的xy图如果连接到connector pannel,那会不会自动释放内存?这个也分两种情况,如果子vi输出给主vi其它地方使用,那么,对应该输出分配的内存在主vi结束时候是不会自动释放的。而如果没有输出给主vi,只是连接到子vi的connector pannel,那么,虽然运行到子vi的时候会分配内存,但主vi结束的时候该内存会释放掉。
     说的很像绕口令,不过,如果学过树形数据结构的,如下描述可能会好一点:leaf的内存能自动释放,而interior的内存,是不会自动释放的,即便程序结束。
     那么,interior的内存在什么时候会释放?当然在你的主vi退出内存的时候。
     另外说下一个很常识的东西,就是子vi如果被调用N次,那么,每次调用开辟的都是同一块内存,这个和c里的函数有很大区别。怀疑子vi在编译的时候是被包含到主vi放在同一个模块编译的。
     另外还有一些内存分配方面的东西,由于是在公司做的结论,不好贴上来,以后有机会再说。。。。。
     其实,内存优化是很高级的东东,但如果大胆假设,小心写demo验证,还是很容易得出结论的。比如楼主的问题,自己写个vi,结果立马出来了,不是么?
     至于论坛,就如某前辈说的,论是讨论之论,而不是你问我答。。。。当然,我不是说不要问问题,我个人很喜欢问题,因为这样能保持自己学习LabVIEW的动力,但是,如果能就某主体展开(xcontrol,customize control,multiprocess and communication,api,auto code generation,design pattern,software engineering,LVOOP。。。。),自己做了一些研究,然后放论坛上讨论之,激起大家的兴趣和热情,从而提高大家的水平,如此良性循环,彼此受益。

PS:毕设终于过去,论坛虽然清净了些,但只要帖子的质量在,还是很好的~
回复 顶

使用道具 举报

发表于 2010-7-1 11:21:00 | 显示全部楼层
回复 顶

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|cpubbs论坛. ( 粤ICP备09171248号 )

GMT+8, 2026-9-29 04:35 , Processed in 0.053836 second(s), 7 queries , Gzip On, File On.

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表