LabVIEW程序的内存优化之子VI的优化_第1页
LabVIEW程序的内存优化之子VI的优化_第2页
LabVIEW程序的内存优化之子VI的优化_第3页
LabVIEW程序的内存优化之子VI的优化_第4页
LabVIEW程序的内存优化之子VI的优化_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

LabVIEW程序的内存优化2-子VI的优化1.子VI参数的缓存重用数据在子VI间传入传出,如果程序设计的好,可以做到缓存重用,使得数据在主VI和子VI中都不发生拷贝,提高程序的效率。我们先来看一下图1所示的VI。打开Tool>>Profile>>ShowBufferAllocations工具查看一下这个VI中内存分配的情况,会发现在代码的加法函数处有一个黑点。这个黑点说明程序在这里有分配了一块内存,这个内存是用来存储加法运算结果的。s图1:控件不与接线器相连时,加法处有内存分配为什么加法函数在这里不做缓存重用呢?利用其中一个加数的内存空间来保存计算结果。当这个VI运行的时候,图2中,加数Numeric的数据是由VI前面板的控件提供的。如果用户不修改控件的值,每次VI运行,这个数值应该是保持不变的。如果加法函数在这里做缓存重用,加数或者说它对应的控件中的数据,就会在加法运算执行后被修改。这样程序就会出现逻辑上的错误。所以把一个这样的控件联在LabVIEW的运算节点上,运算节点是不能重用控件的数据内存的。同样的道理,链接一个常量到运算节点上,节点同样不能做缓存重用。在子VI中,没有连到接线器上的输入控件就相当与一个常量。但是,如果我们让VI上的控件与VI的接线器(ConnectorPane)相连,情况就不一样了。如图2所示,把三个控件连到接线器上,程序中加法节点上那个黑点就消失了,不再为运算结果分配新的内存。图2:控件不与接线器相连时,加法处有内存分配这是因为,当输入控件与接线器连接后,LabVIEW就认为这个输入值应当是由子VI的调用者(父VI)提供的:连到接线器上,逻辑上,这个输入控件就不再是常量,而是一个输入变量了。既然是输入变量,子VI不需要记住输入的数据供下次调用时使用,因此可以把新产生的数据放在输入参数所在的内存,做到缓存重用。罪识你可鞠能在阶想,隆这个必输入搁参数愿的内篇存不衣一定锅可以揭被修受改吧羊,万观一它飞的数祝据还皮要在勇父羞V薯I弓中被察其它劣节点胶使用梢呢伍?薄子没V酿I贡是不爆需要桂考虑列这点妇的,棕输入亿数据盖的数虫据被舅修改匠肯定羞是休安全织的,熄这一风点是津由杂父甜V供I挺来保准证的胖。如蒸果输碌入数范据不盈能被采修改单,粪父挽V燥I腾会把傻传入娃的数股据拷晃贝一打份再集传到绪子宁V集I侮中去央。缘赴比如劝图粘3救中的姿程序输,它士所调仍用的兵子浮V矛I仆就是宇图用2语中那互个缺V姨I望。由系于与贩它的闲第一纹个输台入参攻数相很连的辈是一给个常奔量,较而常痛量的断值是史不能差被改详变的急。所床以猛L厌ab揪VI侄EW宰要把授这个著常量搬的值足复制猫一份吉,再草传到昼子逆V拳I乏中去毫,以凭保证楚子逝V刃I姓中的消运算凉节点侨可以悬做缓嫩存重厕用。巨图报3取:愈父巡V膏I集中的妖数据烛拷贝流贺如果咽图粮3足中的屯父供V骄I环,他诞也使垫用与窝接线晓器相省连的椒输入绕控件芒为岩子狡V旱I沿提供苦输入谨参数毙,畜则描L钳ab弯VI对EW斥会知科道,捡父翠V慌I塞的这混个数搞据是状由再欣上一凡层僵V款I浮提供馋的,难这里章也不终需要拿做数蚀据拷窝贝。吩这样依,这疮个戴V弊I结就也局做到松了缓旨存重舰用。仇设计杯合理拦,参潮数在呀传递考多个挨深度切后都册不需译要开券辟新迫内存率的。携众从上爬面的锈说明等中,慢还可屡以发抖现一顿个问米题。渔就是杠,浇有时烛候红子糟V保I败的改惭动嫂,会草影响棚父滑V懂I虽的行捞为,如比如拉是否娱为传斩入发子情V绍I换的数光据做怒个拷董贝等平等。臣有时市候我励们发驻现改稿动了社一个回子己V侮I得,它昌的抱父裳V甲I仔也需惯要重叉新魔保存悉,就乓是由锦这个熊原因化引起史的。烛2.捆输入膛输出码参数拢的排括布涛钓在趣子墓V嘴I围的程喷序框夏图上想,不争论代位码有眉多复阵杂,街有多贝少嵌卧套的发结构育,控鸣件终集端最唇好按杜照这乏样的速方式标排布连:所话有输船入参耗数检(晌控制芒型控危件的或终舞端放)法都放剃在代千码的鲜最左扇端排辱成一弱列谜;但所有蚂的输茫出参宿数鲜(才显示欢型控斤件的科终些端确)换都放款在代虎码。昏比如澡图壮4威中的决代码染的风疑格就闻比较屯好。跃图展4专:控找件终茎端整弄齐的封排列食在程赵序框垂图左交右两挪端违蒜这首蓬先是不为了友保证妹程序撞有良件好的疗可读耐性。陶我们子在阅盾读垒L妙ab扁VI土EW锡代码括的时制候总难是按撤照从础左到肃右的鸦顺序破,所首有的避参数贴都排童布在滚一起铁,我踪们就翻可以病以数师据线获为线描索,站轻易致的找彻的数旨据被僚读写醒的地渣方。陕其次榆,这俯种风劣格穴的岭V击I宝,在钻效率振上也絮比较霸优化挠。鸦对于做一个席输入笛参饥数望(痒控制络型控挎件的骆终饥端内)拦,如退果把珍它放辣程序赛代码拜的最目左侧溉,所内有结验构的绪外面网,程漠序在贷运行凝这个斧子泼V蝴I狂之前斥,就伐可以俱得到染这个伙参数锈的确递切值换了。霜贯但是论,瓣如果异这个恢终端陡是在生代码哄的某轮个结冬构中弓的,两在某误一结南构的慢内部哈,那仔么侧La害bV李IE油W旨必须下在运黄行到稠这一妹结构俭内部尿的时奴候,穴才可妨以去签读这霸个参淹数的值值,骆否则产可能汗会引瓜起乳逻辑扎上的震错误功。比扔如说扣,一夜个控字制型酷控件伯的终矿端是盗在一此个循谅环的思内部猎,开文始时密它的色值斧是狼x端。在辽运行限到宜第舟n灰次循狸环之商前,版这个好终端馋对应童的前将面板其上的银控件成被人却改为蛋一个碍新的余数孔值贯y泼。那恨么逻帝辑上眨,在开执行脑第咽n臂次循绵环之口前,之每次铅用到银这个族参数仪时,灾它的然值要蹈保持窄为员x贤,而弱在锯第兵n称次循菌环的尼时候坛,又仅要使哀用它问的新府值坚y烘。这编样的迹数据唱所在蹦的内圾存证,霞La脚bV愚IE累W叨显然过是不丰能将脾其重轮用的含,否岛则下氏次循案环再尿读它由的时低候,引数据杜就不耍正确虫了舞。释歇如果竖这个渗终端夏是在暖所有颂结构摔之外第,殖La犹bV振IE译W闪则可街以根就据数诉据线僚的链故接,冈明确株的判欲断出棵在某内一节磨点执岗行完威之后恼,程跨序再密也不录需要旋用到税这个梢参数掘的值像了,增那扰么疲L屠ab弄VI输EW绵就可阵以重仰用它臭所在救的内丛存,悠以避斜免开雅辟新袄内存新,拷示贝数练据等独操作绵。这视样就黎提高苏了程脏序的湾内存棵效率虽。泽椅对于介一个妥输出签参三数牲(萌显示个型控枕件的丽终销端轮)港,如嗓果它捎位于枯某个爱条件理结构的的内虫部箩,填La览bV唐IE凝W伸就要赔考虑词,程椅序有嫂可能滩执行碧不到班这个杆条件宾。索La嘉bV箭IE见W逢就会牵多添时加一剂些代校码来去处理扣这种蔑情况崇,忌当杂V汪I牛没有治运行共到这部个条挑件时逢,要交给输絮出参见数准圾备一伟个默别认值盗。纺钳把这搂个终脉端移袖到汁所有赤结构净之外植,就已可以南省去林这部明分利L拐ab现VI客EW对自动姐添加师上去浪的工叠作和丈,稍胁微提型高一页点效追率绘:)字3.扁良好暖的数桥据流蚀结构古可以孟优化供程序乎内存但效率欣弄先看冲一个燕程蚕序扒:历图筑5费:程竞序中豆没有季必要菠的数最据线吉分枝孕图炊5缘的政程序春只是应一个精演示锯,不鹿必追嫁究它竿到底迟实现沫了什证么功贷能。叙图中葱的左庭半部件分是染主批V蜡I陪,在林这紫个宅V莲I孤中对泄输入粪的数塌组数桨据腿Ar拖ra艰y顶进行伏了两落次操佩作:企一次茶使低用北s冒ub步V俘I世“府My垒S突ea借rc北h医”叶;犁另一袄次使欲用了个数组坊排序程函数甚。股图吐5筐的右命半部鹿分喂是哑s萌ub计V仓I府“顿My郊S笔ea魄rc背h刻”奔的程义序框于图。裤滨需要庆注意派的是滑,印主倍V往I肢上脸S胃or砖t脏1D售A偿rr兽ay瓦函数惠那里挖有个削黑垦点曾(老这个晋黑店齐靠近刚黄色我方块胞的中哲心,使这里昨看不乔太清戒楚,丰和电图言6作对比所一下绿,就翼可以爽发现着了首)野,说室明这明里做奥了一简次内亭存分滋配。夸这是挪因橡为钩Ar危ra锹y齐的数型据被慕同时党传递四到抽了幼“聚My驼S刃ea街rc荐h钱”豆和耻“合So求rt放1靠D停Ar逮ra局y叉”丛两个悼节点枣进行阔处理菊。这沙两个碧操作名可能历会同竖时进职行贸,愉La垦bV魔IE兔W悔为了要安闷全山(绘两个草操作振对数苍据的欧改动炸不能肃相互易影响耳,不亮能同部时对积一块菜内存言进行砌读桌写界)磨,就耻必须收为这挠两个恭节点肠准备叉两份滑数据真在两礼份内辱存中套。所姜以贵在凯“刮My翻S社ea怠rc轰h街”锈和肠“咳So叔rt窑1层D拜Ar阀ra用y趣”轨两个夏节点蔑中,夺如果鲁一个浩节点于用了塘原川来榴Ar仓ra先y蛙的内群存,略另置一个牌节点有就需灰要拷惑贝一壳份数哭据给忙自己饲用。岭贺不过活,如虎果看盼一吉下巧“惹My声S矛ea测r骑c哗h奔”害的程池序框蒜图,眉它其饱实没忙有黄对当Ar哀ra判y箱数据付进行唯任何虽改动肝,筑主涝V许I底完全繁没有投比要炕给畜“表So优rt催1异D霜Ar渗ra球y液”鱼开辟咏一块怠新迹内存轰。我邀们只客要对芬程序讲稍作梳改动桐,就靠可以亦对此谁进行脑优化乞。低图绸6颠是改喷进后应的程则序:免图隙6手:符业合数自据触流风水格的晴主跃VI怪涉在改骡进后猫的程橡序中独,养Ar江ra迫y跨数据闭首先相传嫩入配su渴bV映I截“谦My杂S痛ea花rc棕h粒”划,然扫后又番传出兼来,粉继续伐传往给洞“浇So斗rt升1主D滩Ar评ra坐y捆”钱函数葬。这悲样子蒜看上福去好永像数黄据要猫多到芝子榨V钥I拾中转全一圈喇,但寇实际忠上,弯由于娇子还V嚷I姜中幼Ar改ra膨y更输入辜输出牢是缓吊存重弱用的第,实惯际上僵相当国于只夕是把潜数组荷数据样的引局用传识给了征子老V轰I款,效撞率是成相当秩高的玩。而脾在羽主圈V集I浮中,估执息行桃“逝So易rt征1优D妈Ar钥ra筐y业”酱时酬,途La引bV骂IE候W瞒知道可输入茄数据扶现在贷是这倦个节永点专菠用的悦,改畅了他变也是激安全朝的,靠于悼是也特可以借缓存配重用怜。图秒六中栗,洽“悟So浆rt逃1照D淹Ar栋ra柱y钳”重上的千那个社小黑啊点就华消研失了姐。扩图侨6志中的东主哲V健I妙,它崇的优坏点首腹先是日符合讯数据统流的虫风格隔。一扶个主嫁要的再数据障从左佳到右丘,流导经每变个节输点。达这样托的程融序非亏常容烫易阅非读和虑理解匆。狡La去bV街IE味W够也更贯容易鞋对这艳样的丙代码伪进行慰优化班,所叠以这虽样风龟格的抬程序击通常恋效率皂也比救较高抽。席施有的颜时候限,利倦用则L嫩ab贸VI雅EW胀的自白动多纳线程雪特

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论