当程序运行在RunUserInterface()函数中时,CVI的运行引擎处于一个连续的循环中,等待系统事件。为了内部状态有效,CVI需要处理并分派这些事件。每次在这个循环中,根据用户的休眠策略进入休眠状态。虽然休眠越多,资源消耗越小,但正是这个循环在消耗CPU资源。此外,我们接收到的事件越多,CPU资源消耗越多(鼠标移动时CPU使用增加)。
所以为降低CPU使唤猛用的一种办法是把休眠策略定为"更多休眠"。在主函数中,在RunUserInterface函数前面,使用函数SetSleepPolicy来实现"更多休眠"这就降低了芦李程序检查前面板事件的频率,但是后台 *** 作仍然以相同的速率运行。这一选项在CVI 5.0以及更高的版本都设置为默认值。
为了降低CPU使用率,还陪链迟可以在whiel循环中不采用RunUserInterface(),而是调用ProcessSystemEvents()。当你调用ProcessSystemEvents()函数,CVI执行一个固定次数的迭代,迭代的次数更小,同时它同样根据休眠策略休眠。总的说来,这个办法将耗费更少的时间,并且对休眠策略更加敏感,并且主要的不同还在于它对系统事件(鼠标移动,...)数目不会那么敏感。所以
#include <windows.h>// 包含Sleep函数
int gQuit = 0// 全局变量,在调用QuitUserInterface时设置
while (!gQuit) {
ProcessSystemEvents ( )
Sleep (10)
}
这将有助于明显降低CPU使用率。
ProcessDrawEvents实际应该不会对CPU使用率带来影响。 单线程 vs. 多线程应该没有多少影响。 调试 vs. 发布版本配置应该不会带来影响。CVI在事件处理上比较独特,这使得它"看起来占用"大量的CPU资源。不幸的是,这是软件的核心设计部分,不可能轻而易举就作出修改。这主要是一个感觉上的问题。如果其他进程都没结束,我们的程序获得控制权,CPU资源占用率的提高是很正常的。但是,出现这种现象并不是由于运行CVI应用程序。
NI推出最新版本的ANSI C开发环境LabWindows/CVI 20092010-1-29 来源: 点击:17美国国家仪器有限公司(National Instruments,简称NI)近日宣布推LabWindows/CVI 2009,这是最新版本的ANSI C开发环境,用于构建可靠的测试与测量解决方案。该软件支持包括可连接LabVIEW FPGA的C接口在内的PC新技术,,能够实现与基于现场可编程门阵列(FPGA)的硬件、微软Windows 7和64位 *** 作系统的连接,以简化开发和部署LabWindows/CVI的应用程序。工程师和科学家们可以通过使用新的软件执行分析工具包,来分析和优化标有图示的应用源代码运行时的性能,而这些图示会显示运行该应用程序的每个阶段所需的时间,以此可以进一步提高应用程序的可靠性和生产效率。此外,LabWindows/CVI 2009通过运用最新的属性浏览器提高生产效率,方便了自定义用户界面的快速设计和调试性能的改善。
LabWindows / CVI2009提供了一个高效开发环境,帮助开发者设计一个软件定义的自动化测试系统,并且提供可靠的测试和测量解决方案,同时确保了ANSI C开发者的反向兼容性。新的执行分析器工具包包括一台浏览器,展示LabWindows/CVI 应用程序在运行闹世时期内功能的完成情况。这种图形化的功能执行的呈现方式,使得工程师和科学家们能直观且轻松地识别出应用程序中的低效和障碍。
LabWindows / CVI2009也为新的Microsoft Windows 7 *** 作系统提供完备的支持,简化了从现有的LabWindows / CVI应用程序系统迁移的步骤。工程师和科学家们现在可以在一个32位或64位 *** 作系统上建立64位应用程序,并且能在Windows 7 *** 作系统中运行或安装64位应用程序。使用64位 *** 作系统提高了应用程序的性能,扩大了存储容量并提漏弯前升了直接加载的数据量的能力。
连接到 LabVIEW FPGA的全新C接口,使得LabWindows / CVI的开发人员可以通过创建上位机应用程序来与由NI LabVIEW FPGA编程的可配置硬件进行通讯。LabVIEW FPGA模块允许该领域专家自定义硬件的特返清性,而无需具备数字化设计或硬件描述语言方面的专业知识。工程师和科学家们可以使用该自定义硬件创建具有高速硬件可靠性和严格确定性要求的应用项目。此外,在新的软件中也包括一个新的属性浏览器,提供了一种通过同时选择和编辑多个控制器的通用属性来快速设计用户界面的方法。有了扩展调试数据,LabWindows / CVI2009具备了更多有效的的调试功能,对源代码的执行提供了更加完整的理解。
此外,LabWindows/CVI 2009在实时模块上的各种改进,能帮助工程师和科学家们设计更可靠和确定性的应用程序。LabWindows/CVI 2009实时模块也可以设计需要为UDP网络协议的流量指向可选用户组,并且确保数据发送者在传送中无需任何额外工作。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)