众所周知,对于工程师而言,时间在任何方面都是宝贵的因素。无论您是需要更快地采集数据,从而利用软件更精准地反映真实世界的信号、同步远程系统、还是仅仅更快速地完成您的工作,时间都是非常重要的。
作为图形化的编程语言,NI公司的 LabVIEW 软件有助于节省您的时间和编译G语言的时间。 图形化的编程方法可以让您只需关注数据以及对数据的操作,并且抽象出了诸如内存分配和语法规则等大量复杂的计算机编程工作,从而进一步提高您的工作效率。此外,LabVIEW也包括了高级的定时机制和应用程序API函数,来定义硬件和软件之间时间约束的参数和关系。
LabVIEW最新版软件LabVIEW 2010,其最显著的新功能就是针对各种时间实现的 优化 。最新的版本是整个软件平台的综合更新,包括直接被客户需求推动的新功能,新的FPGA IP模块,增强的定时和同步功能,以及改进的用于产生优化机器码的后端 编译器 ,总体可提升高达20%的应用程序运行性能。
图1. 相比LabVIEW2009,LabVIEW 2010提升了高达20%的应用程序运行性能
本文将通过编译器的优化、内置的定时与同步以及用户自身提出的新特性,三个方面,为您全面介绍LabVIEW 2010。
编译器的优化
LabVIEW编译器在提升编程效率方面是一个关键的技术。编译器用于处理复杂的任务如内存分配和线程管理等,并在编辑时,当程序框图代码不可执行的情况下提供反馈给用户。最终,复杂的编译器和优化线程解析您高层次设计并返回高效率的机器代码。
在过去的数十年中, 编译器已经愈加地智能化和最优化, 加入了内嵌法(inplaceness),类型传播法,聚丛法,虚拟寄存器,文本编译器优化以及其他来自于NI编译器研发者智囊团的智能化处理方法。无论是一个新增功能,修正漏洞,还是编译器的改进,每一次发布都引入了更新的编译器,让您的代码性能更优化。LabVIEW 2010版本关注的焦点之一就是VI 运行时的性能–也就是说,无需改变源代码本身,提升您的VI运行性能。
为了更快地提高您的代码执行效率同时无须更改您的代码,研发者引入了2个 “层”到编译器层次关系中。LabVIEW 2009 引入了数据流的中间代码表示(DFIR),一个高层次的架构用于转换从您的程序框图中产生的数据流驱动的图形化代码。 LabVIEW 2010加入了基于底层虚拟机(LLVM)的后端 ,提供了一种新的标准编译器的优化(图2) 。 DFIR和LLVM协同工作提供高层次和低层次的中间代码表示,以便于编译器使用中间代码细分和优化LabVIEW程序。 在LabVIEW 2010中,采用了中间代码表示意味着编译器优化线程并未影响实际的程序框图,但由于产生了优化的机器代码,这就为您的应用程序提升了高达20%的运行时执行效率。
图2. 全新的 LabVIEW 编译流程
LabVIEW 2010通过帮助您管理源代码和开发更多模块化的软件架构,提供了助力于大型应用程序开发这一新功能。 通过从LabVIEW编写出的源代码中分离出已经编译过的对象,LabVIEW 2010可以明显提高开发者的工作流程。 当这一新的VI属性选项设置打开时,一个VI在重新编译后并不显示为已经修改,除非开发人员修改了图形化的源程序;这就避免了重新保存和重新提交文件到源代码控制的需要。
新的打包项目库提供了更加模块化的软件设计和开发过程,更短的生成时间和更简便的部署方法。 LabVIEW打包项目库文件是一个新的LabVIEW文件类型,由一个项目库和所有涉及的子程序组合而成一个单独的文件。 导出的VI包含在这个文件中,就如同其它的VI保存为不带程序框图的形式,但是它们的层次已经完全被隐藏。它们遵循一个生成规范,现有的lvlib后缀文件被选择用于确定哪些VI正在被生成到打包的项目库中以及哪些VI是公共的或导出的。
内置的定时和同步
大部分计算机应用程序必须要满足和它们交互的计算机物理系统所需求的时间约束参数。如果您所使用的系统环境并没有一个明确的时间概念,您将会不大容易写出一个可以定时的程序。