LabWindows CVI是专门为工程师和科学家们打造的一款测试和测量的ANSI C开发环境,该软件界面简洁、功能丰富,提供了丰富的测量、分析和工程UI设计的资源库,可帮助您大幅缩短开发时间,实现可靠、高性能的应用。LabWindows CVI 2015新开发的LabWindows/CVI优化编译器,包含了Clang 3.3,Clang是LLVM编译器基础架构的C语言编译器前端,首次引入LLVM,这是一种业界标准的编译器基础架构,为编程人员提供了经优化且开箱即用的代码,可通过增加错误和警告消息来高亮显示薄弱环节,帮助开发人员确保代码的可靠性。
LabWindows CVI 2015专为高稳定性而开发,包含了超过50个漏洞修复和改进,提供了一个强大的开发平台构建测试和测量关键应用,程序员可以利用如OpenMP和网络流引入等新功能来完成工作,提高应用程序性能,而无需重写显著其代码的新功能。通过提供最新的编译器和并行编程技术,LabWindows CVI 2015可让开发人员专注于程序逻辑和I/O。
软件特色
提高代码性能
1. 执行优化编译器
在LabWindows/CVI 2013中,编译器使用了具有Clang C前端的LLVM编译器基础架构。 这个编译器可生成经优化的代码,这意味着您不再需要使用外部优化编译器来优化代码。
Clang被选作为LabWindows/CVI编译器的基础是因为它可以提供非常快速的编译、极其有用的错误和警告消息以及比早期LabWindows/CVI编译器高60%的执行速度。 执行复杂计算、数学或分析的开发人员将可看到最高的性能提升,因为编译器后端特别适合用于优化数学计算所需的资源。
LLVM和Clang最开始是伊利诺伊大学的一个研究项目,目的是提供一个基于SSA的现代化编译策略,能够同时支持任意编程语言的静态和动态编译[1]。 从那时起,LLVM逐渐发展,衍生了大量子项目,其中有许多被苹果、英特尔、AutoESL、NVIDIA及NI等各种商业软件供应商应用于生产之中。 。
开发人员还可以根据自定义的警告级别类型列表显示或隐藏警告级别,从而更轻松地找到感兴趣的警告、专注于错误和更高效地进行调试。 如果要访问“编译器警告”对话框,则右击“构建输出”窗口,然后选择配置警告 。
2. 基于OpenMP的灵活多线程执行
可移植且可扩展的OpenMP API可帮助开发人员无需大量编辑即可轻松并行执行现有代码。 OpenMP(开放式多处理)是一套编译器指令及相关子句、应用程序编程接口(API)和环境变量的集合,可帮助您轻松地创建多个线程上执行的应用程序。 OpenMP模型可允许您完成以下任务:
定义代码的并行区域和创建执行并行区域的线程组。
规定同一组中不同线程之间的任务共享方式(循环迭代)。
规定线程间可共享的数据以及每个线程专用的数据。
同步线程、防止并发访问共享数据,并定义由单个线程专门执行区域。
OpenMP的特殊用途
OpenMP适用于由密集循环组成的程序,其中循环迭代之间是彼此独立的,这样迭代的子集可以在多个处理内核上并行运行。 同时它也适用于多个区域之间可以相互独立地运行但必须在某个时刻同步的程序。 因此OpenMP也是实现fork/join并行设计模式的一种有效方法。
虽然我们可以使用LabWindows/CVI工具库来创建多线程应用程序,但是OpenMP模型也提供了许多好处。 如下图所示,通过插入单行编译指示,我们有可能以最小的改动逐步实现OpenMP模型。 这也使开发人员能够保留原始源代码中的序列顺序,而且在添加OpenMP指令之后只需少量的重新测试,这是因为程序、数据结构和算法都没有发生变化。 我们也可以通过禁用“构建选项”对话框中的OpenMP支持来轻松编译和测试程序的序列版本。
OpenMP的结构化方法有助于最大限度地减少多线程编程常见的可能编程错误,因为它不要求使用底层多线程结构和对象。 所有底层实现均是由OpenMP进行处理,这样开发人员便能够专注于应用程序逻辑和I/O。
此外,这也简化了将代码移植到其它编译器和操作系统,因为不支持OpenMP结构的编译器将会忽略OpenMP编译指令。 我们甚至可以在不修改源代码的情况下使用用于调整循环调度的环境变量来调整运行时的性能。
OpenMP API集成到LabWindows CVI库树中。 您必须选中构建选项对话框中的启用OpenMP支持 。
3. 无损的网络数据流
网络流API为分布式LabWindows/CVI或LabVIEW应用提供了无损的单向点对点通信通道。 利用网络流,您可以轻松地在网络上或在同一台计算机上共享数据。
网络流是一种易于配置、紧密集成的动态通信方法,适用于应用程序之间的数据传输,具有可与TCP相媲美的吞吐量和延迟特性。 网络流也增强了连接管理,如果由于网络故障或其他系统故障导致连接中断,网络流可自动恢复网络连接。 网络流利用缓存无损通信策略来确保写入网络流的数据即使在网络连接不顺畅的环境下也不会丢失。
网络流提供了一个协议和API来实现网络应用之间的测量数据传输,而不会丢失任何数据点。
网络流的具体应用
网络流经设计和优化可实现无损、高吞吐量的数据通信。 网络流采用单向点至点的缓存通信模型来实现应用程序之间的数据传送。 这意味着其中一个终端是数据的创建者,另一个终端是读者。 您可以使用两个网络流来实现双向通信,其中每一台计算机的创建者和读者与对应计算机的创建者和读者相匹配。
由于网络流具有与原始TCP相匹配的吞吐量性能,因此对于高吞吐量应用,如果编程人员希望避免TCP的高复杂性,那么网络流就是理想的选择。 网络流也可以用于无损的低吞吐量通信,例如发送和接收命令。 但是,将网络流应用于低吞吐量通信时,如果需要获得最低的延迟,可能需要更明确地管理数据通过网络流发送的时间。
4. 高性能数据流盘
NI技术数据管理流(TDMS)文件格式是将测量数据保存到磁盘上的最快速、最灵活方式。 开发人员长期以来一直使用LabWindows/CVI TDMS API,在数据流盘时将定时信息和自定义属性关联到测量数据上。 将数据存储为TDMS文件省去了设计和维护自定义数据文件格式的需要,同时获得了记录详细、易于查询且可移植到任意平台的数据集。
提高效率
5. 强大的构建系统
LabWindows/CVI构建功能可减少花在等待构建完成的时间,使开发人员能够继续进行代码编辑,同时在后台构建项目。 构建系统专门针对提高构建速度和需要并行构建多个独立源文件的项目进行优化,以便用户充分利用多核处理器的优势。
6. 强大的源代码浏览
LabWindows/CVI中提供了丰富的编程体验,为用户提供了直观控件、导航和源文件信息。 程序员可以使用源代码窗口中工具栏的下拉列表来查看和定位到源文件的函数。
此外,开发人员可以在编辑文件的同时生成源代码浏览信息,这样开发人员可以在编程的同时实时浏览代码,而不需要先编译。 该选项是LabWindows/CVI环境的一个全局功能,源代码浏览信息包含于发布和调试配置中。
7. 批量格式和自动代码缩进
为了帮助开发人员创建更简洁、易读的代码,LabWindows/CVI提供了定制批量格式和自动缩进工具。 选择选项»编辑器首选项 ,然后单击格式选项 按钮来指定括号风格和缩进选项。 为了保持一致性,开发人员可以选择普通缩进和括号风格,并使用预览窗口来预览自定义选择的格式样例。 如果指定自动缩进的代码行,可选择源窗口中的文本行,然后选择编辑»格式选择 。 如果是自动缩进整个文件,则选择编辑»格式文件 。
8. 发布的软件依赖关系支持
在创建发布时,开发人员可以选中或忽略任何包含软件依赖关系的NI安装程序组件的软件依赖关系。 产品的软件依赖关系是指产品可能需要或不需要的组件,根据应用程序的特定需求而异。 通过“编辑安装程序”对话框的驱动和组件 选项卡可选择软件依赖关系。
安装教程
1、运行“NILWCVI2015.exe”,点击Unzip解压安装文件
2、选择第一项“Install NI LabWindows/CVI 2015”
3、输入任意Name和Orgenization,勾选第二项跳过注册码
4、选择软件安装目录
5、取消勾选,点击NEXT
6、允许用户协议
7、点击NEXT开始安装
8、等待安装完成,中途若弹出必备项目,全部将其安装上
9、安装完成后,打开运行LabWindows CVI 2015破解补丁“NI_Lic_Act_1.2.exe”,找到“CVI 2015”的下拉选项,右键点击,选择Activate...,将其全部点亮即可
∨ 展开