网站大量收购闲置独家精品文档,联系QQ:2885784924

La的bVIEW性能和内存管理(中文).pptx

  1. 1、本文档共47页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
La的bVIEW性能和内存管理(中文)

LabVIEW的性能和内存管理目标理解LabVIEW的执行系统学习通过以下方式提高性能:减少数据备份减少总的内存使用理解VI执行属性LabVIEW的执行系统LabVIEW的执行系统是LabVIEW中负责实际运行代码的部分支持自动并行运行LabVIEW的独特性其它编程语言需要手动线程管理LabVIEW执行系统使你的代码自动并行运行。在其它编程语言中如果需要并行运行代码必须手动管理线程,但是LabVIEW的编译器和执行系统在可能的情况下一起并行运行代码。大多数情况下,执行系统的细节是无关紧要的,因为系统能够在没有干预的情况下自动优化执行程序,但有些时候了解细节有助于理解执行系统的工作方式,以便于提高程序性能。LabVIEW的执行系统系统工作就像一个线程池程序工作就是一个队列一系列线程从队列中提取程序执行代码工作(队列元素)就是执行代码片段每一个队列就是一个执行系统用户界面I标准仪器I/O数据采集其它1其它2与调用方相同定时循环LabVIEW执行系统就像一个线程池。线程池是线程的集合,共同完成从共享队列中提取的一系列工作。在LabVIEW中,工作被称为“队列元素”,每一个元素都代表一段需要被执行的VI代码。在LabVIEW中,实际上有6个执行系统,每一个系统都有自己独立的队列。此外每一个定时循环都有自己独立的执行系统。LabVIEW的执行系统每一个执行系统有多个线程例外:用户界面只有一个线程下图显示的是执行系统如何工作的模型。模型中为每一个执行系统(3个)创建了一个队列。放在队列里面的数据代表需要编译的VI的执行代码。当一个VI准备运行时,LabVIEW将其放入对应执行系统的队列中。每一个执行系统有一个或多个线程。每一个线程都有一个循环,这个循环从队列中提取并执行队列元素代码。用户界面执行系统只有一个线程,但是其它的执行系统都有多个线程并共享同一个队列。当VI的代码并行运行时,代码在执行系统的不同线程中被并行处理。LabVIEW的执行系统LabVIEW块运算Clump 0Clump 1Clump 0Clump 2LabVIEW块运算LabVIEW使用抢先式和合作式的多线程机制。在编译过程中,LabVIEW分析VI以定位可以在所谓的块中一起执行的节点组。每个优先级和执行系统组合都有一个运行队列数据结构,保留哪些块可以一起运行。当执行系统激活线程时,执行系统从运行队列检索并执行块。当执行系统完成运行时,它在运行队列上存储满足输入条件的附加块。这就允许程序框图在任何可用的执行线程中运行。如果程序框图具有足够的并行性,则它可以在所有线程中同时执行。LabVIEW不会将代码块永久分配给特定线程。LabVIEW可以在下次运行VI时使用不同的线程执行程序块。由LabVIEW安排,每个块产生一段代码。在一个块中,LabVIEW不提供并行性。在块与块之间,LabVIEW可以使用其执行系统进行多任务。LabVIEW块运算Clump 1Top For LoopIndicator is updatedClump 0 Scheduled Sleep...Clump 1 SleepingClump 0Start of diagram:Reads controls, then schedules Clumps 1 and 2 Then sleeps...Completion of diagram:Divide nodes, display of indicators, then VI exit.Clump 0 SleepingClump 2Bottom For LoopIndicator is updatedClump 0 Scheduled Sleep...Clump 2 SleepingLabVIEW块运算上图显示的块表示程序框图的开始和结束。当两个“循环”执行时,该块是“休眠”,同时它会被“唤醒”以结束VI(两个除法函数)。在有一个LabVIEW执行系统情况下,VI会生成执行代码。在VI的数据空间中,每个块有一个记录,称为Q元素。Q元素可以放在一个称为“runQ”的队列上,LabVIEW执行系统使用它来安排相关的代码段。休眠当节点“进入休眠”时,它将自身置于等待队列上,然后返回到执行系统例如,队列,子VI调用,调试等.当它完成等待时,从等待队列释放并放回执行队列有时VI会通过停止执行并返回队列来将执行权交给其它VI例如,While循环队列元素跟踪进度,以便他们可以在停止的地方重新执行通常LabVIEW代码中的一个节点必须等待某些事情,然后才能继续。例如,队列或子VI可能被另一个线程使用,或者在调试时单步执行。在这些情况下,该队列元素的VI代码将被放入正在等待处理的等待队列中。在将其放入等待队列之后,VI代码返回到它正在运行的执行系统线程,以便另一段代码可以

文档评论(0)

liwenhua00 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档