- 4
- 0
- 约1.28千字
- 约 2页
- 2019-07-03 发布于江西
- 举报
VI 中的数据空间
LabVIEW 由于比其它语言采用了更多的值传递方式,这必然会影响它的运行效率,也使得 LabVIEW 在这方面要采取一些其它语言不需要的应对措施,尽量提高效率。优化之一是子 VI 中局部变量使用的内存的分配方式。 C 语言中,函数的局部变量存在于栈中。在调用某一函数时,程序才为这个子函数开辟一块空间作为用于保存函数中局部变量的栈。子函数运行结束后,栈空间即被释放。下次再调用这个函数,程序会重新非配栈空间,这时的空间可能与上次分配的并不在同一内存地址。为了节约反复开辟空间的时间,LabVIEW VI 中并没有采用栈的方式。一般情况下,静态调用 VI,每个 VI 专门有一块存数据的数据空间,这块数据空间所在的内存地址在 VI 每次运行时是不会变化的,尤其是上次 VI 运行后所留有的数据还可以被使用。
LabVIEW 这种做法最大的好处是节约了大量开辟、回收内存的开销;但它也有个严重的缺陷,这也是其他语言不采用类似措施的原因:每次函数调用没有独立的数据区,因此无法实现递归调用(LabVIEW 静态调用的情况下)。经过权衡,LabVIEW 最终牺牲了递归来换取运行效率。
对于一般的子 VI(非可重入的),不论在程序的哪里被调用时,都使用的是同一块数据区。如果主 VI 上有两个并排被调用的同一个子 VI(如图1所示的两个 Delay V
您可能关注的文档
最近下载
- 2025年广东省“小小科学家”少年儿童科学教育体验活动物理模拟试题A.docx VIP
- 山东师范大学附属中学招聘考试真题2024.docx VIP
- 选相分合闸装置PCS-9830_201007.pdf VIP
- 高速铁路桥梁桥面薄涂型聚氨酯防水层施工工法.docx VIP
- 高速铁路桥面薄涂型(PPU)聚氨酯防水层施工安全技术保证措施.docx VIP
- 高速铁路桥面薄涂型聚氨酯防水层施工实施细则.docx VIP
- 单位停车位管理制度.docx VIP
- 2025年高考数学压轴题分层练习:平面向量(20题).pdf VIP
- 农村种桑养蚕创业计划书.pptx VIP
- 毕业设计(论文)-铝合金轮毂径向反向复合挤压工艺及模具设计.doc VIP
原创力文档

文档评论(0)