亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        嵌入式系統(tǒng)中程序的優(yōu)化策略

        2009-03-14 06:59:48王月青
        新媒體研究 2009年4期
        關(guān)鍵詞:程序代碼嵌入式系統(tǒng)面向?qū)ο?/a>

        [摘要]嵌入式系統(tǒng)中的程序往往是運(yùn)行在有限的硬件資源環(huán)境中,而且大多具有實(shí)時(shí)性的要求,因此要對(duì)程序進(jìn)行優(yōu)化,盡量提高程序的執(zhí)行效率,減少程序的存儲(chǔ)空間。討論對(duì)嵌入式系統(tǒng)中的程序進(jìn)行優(yōu)化的方法和策略。

        [關(guān)鍵詞]嵌入式系統(tǒng) 優(yōu)化 程序代碼 面向?qū)ο?/p>

        中圖分類號(hào):TP3文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1671-7597(2009)0220063-01

        一、引言

        嵌入式系統(tǒng)是一個(gè)專用計(jì)算機(jī)系統(tǒng),完全封裝在其所控制的設(shè)備內(nèi)。與通用計(jì)算機(jī)不同,嵌入式系統(tǒng)執(zhí)行非常明確的預(yù)定義任務(wù)。而且,嵌入式系統(tǒng)的外形尺寸、功耗、外部適配器等各種特征必須滿足應(yīng)用的要求和限制;另外,一些嵌入式系統(tǒng)還具有實(shí)時(shí)性的要求。為了滿足嵌入式系統(tǒng)的實(shí)時(shí)性和有限存儲(chǔ)空間的要求,嵌入式程序要盡量提高運(yùn)行速度,減少存儲(chǔ)空間。因此,在嵌入式系統(tǒng)設(shè)計(jì)中要進(jìn)行程序的優(yōu)化以提高系統(tǒng)的性能,縮減產(chǎn)品的尺寸和成本。

        對(duì)嵌入式程序進(jìn)行優(yōu)化主要從兩個(gè)方面入手:1.設(shè)計(jì)優(yōu)化;2.代碼優(yōu)化。

        二、設(shè)計(jì)優(yōu)化

        (一)面向?qū)ο蟪绦蛟O(shè)計(jì)技術(shù)

        現(xiàn)代的程序設(shè)計(jì)普遍采用面向?qū)ο蟮脑O(shè)計(jì)方法。面向?qū)ο蟪绦蛟O(shè)計(jì)于20世紀(jì)60年代提出,以后逐漸發(fā)展和完善,出現(xiàn)了java、C++等面向?qū)ο蟮某绦蛟O(shè)計(jì)語言。面向?qū)ο蟪绦蛟O(shè)計(jì)的出現(xiàn)是計(jì)算機(jī)編程技術(shù)的重大進(jìn)步。它以對(duì)象為中心觀察、描述和處理問題,按照對(duì)象及對(duì)象之間的聯(lián)系來構(gòu)造軟件實(shí)體。

        面向?qū)ο笫且环N自下而上的程序設(shè)計(jì)方法,它以數(shù)據(jù)為中心,類作為表現(xiàn)數(shù)據(jù)的工具,是劃分程序的基本單位。面向?qū)ο蟪绦蛟O(shè)計(jì)的基本方法就是把數(shù)據(jù)和對(duì)數(shù)據(jù)的處理函數(shù)封裝在一起,形成一個(gè)相對(duì)獨(dú)立的類模塊,類實(shí)現(xiàn)了數(shù)據(jù)與函數(shù)功能的有機(jī)結(jié)合。

        (二)面向?qū)ο笤O(shè)計(jì)的優(yōu)化

        類是面型對(duì)象程序設(shè)計(jì)的基礎(chǔ),通過類繼承可以最大限度地實(shí)現(xiàn)功能代碼的重用,減少程序的存儲(chǔ)空間。

        調(diào)整繼承關(guān)系是優(yōu)化設(shè)計(jì)的一個(gè)重要方面,繼承關(guān)系能夠?yàn)橐粋€(gè)類族定義一個(gè)協(xié)議,并能在類之間實(shí)現(xiàn)代碼共享以減少冗余。在面向?qū)ο笤O(shè)計(jì)中,建立良好的繼承關(guān)系對(duì)優(yōu)化結(jié)構(gòu)是非常重要的。

        在設(shè)計(jì)類繼承時(shí),使用自頂向下和自底向上相結(jié)合的方法。先創(chuàng)建一些功能類型,然后進(jìn)行歸納。如果在一組相似的類中存在公共的屬性和公共的行為,則可以把這些公共的屬性和行為抽取出來重新定義一個(gè)類作為基類。

        三、代碼優(yōu)化

        代碼優(yōu)化,就是采用更精簡的程序代碼來代替原有的代碼,使編譯后的程序運(yùn)行效率更高。以下是一些常用的優(yōu)化技術(shù)和技巧。

        (一)盡量定義輕量級(jí)的構(gòu)造方法

        在進(jìn)行類的設(shè)計(jì)時(shí),要盡量設(shè)計(jì)輕量級(jí)的構(gòu)造方法。在程序運(yùn)行過程中,除了創(chuàng)建顯示定義的對(duì)象外,還要?jiǎng)?chuàng)建很多臨時(shí)的對(duì)象,在創(chuàng)建類型的每個(gè)對(duì)象時(shí)都要調(diào)用類型的構(gòu)造方法。如果構(gòu)造方法過于復(fù)雜,就會(huì)降低程序運(yùn)行的效率。

        (二)盡量定義局部變量,減少類成員變量的個(gè)數(shù)

        少用全局變量,多用局部變量。全局變量是放在數(shù)據(jù)存儲(chǔ)器中的,太多的全局變量,會(huì)導(dǎo)致編譯器無足夠的內(nèi)存分配;而局部變量則大多定位于內(nèi)部的寄存器中。使用寄存器的操作速度比數(shù)據(jù)存儲(chǔ)器快,指令也更靈活,有利于生成質(zhì)量更高的代碼。

        (三)代碼替換

        使用周期短的指令代替周期長的指令,以降低運(yùn)算的強(qiáng)度。

        1.減少除法運(yùn)算。用關(guān)系運(yùn)算符兩邊乘除數(shù)避免除法操作,還有一些除法和取模的運(yùn)算可以用位操作來代替。因?yàn)槲徊僮髦噶钪恍枰粋€(gè)指令周期,而“/”運(yùn)算則需要調(diào)用子程序,代碼長,執(zhí)行慢。例如:

        優(yōu)化前if((a/b)>c)和a=a/4

        優(yōu)化后if(a>(b*c))和a=a>>2

        2.減少乘方運(yùn)算。例如:

        優(yōu)化前a=pow(a,3.0)

        優(yōu)化后a=a*a*a

        3.使用自加、自減指令。例如:

        優(yōu)化前a=a+1、a=a-l

        優(yōu)化后a++、a--

        對(duì)除法來說,使用無符號(hào)數(shù)比有符號(hào)數(shù)會(huì)有更高的效率。在實(shí)際調(diào)用中,盡量減少數(shù)據(jù)類型的強(qiáng)制轉(zhuǎn)換;少用浮點(diǎn)運(yùn)算,如果運(yùn)算的結(jié)果能夠控制在誤差之內(nèi),則可用長整型代替浮點(diǎn)型。

        (四)switch語句和循環(huán)語句的優(yōu)化

        編程時(shí),對(duì)case值按照可能性排序,將最可能發(fā)生的情況放在第一個(gè),最不可能的情況放在最后一個(gè),可以提高switch語句塊的執(zhí)行速度。

        循環(huán)體是程序優(yōu)化的一個(gè)重要環(huán)節(jié),對(duì)于一些不需要循環(huán)變量參加運(yùn)算的模塊,可以把它放到循環(huán)的外面。對(duì)于次數(shù)固定的循環(huán)體,for循環(huán)比while循環(huán)效率更高,減計(jì)數(shù)循環(huán)比增計(jì)數(shù)循環(huán)速度快。

        (五)查表代替計(jì)算

        在程序中盡量不進(jìn)行非常復(fù)雜的運(yùn)算,如浮點(diǎn)數(shù)的開方。對(duì)于這些消耗時(shí)間和資源的運(yùn)算,可以采用空間換取時(shí)間的方法。預(yù)先將函數(shù)值計(jì)算出來,置于程序存儲(chǔ)區(qū)中,以后程序運(yùn)行時(shí)直接查表即可,減小了程序執(zhí)行過程中重復(fù)計(jì)算的工作量。

        四、結(jié)論

        嵌入式系統(tǒng)中的程序往往需要滿足實(shí)時(shí)性的要求,而且受到存儲(chǔ)空間的限制,因此對(duì)嵌入式系統(tǒng)中的程序需要進(jìn)行反復(fù)的優(yōu)化。進(jìn)行程序的優(yōu)化可以從設(shè)計(jì)和編碼兩個(gè)方面入手。在設(shè)計(jì)階段,采用面向?qū)ο蟮脑O(shè)計(jì)方法,對(duì)類型反復(fù)地進(jìn)行歸納,盡量提高繼承程度。和在編碼階段,要在數(shù)據(jù)定義、功能代碼的編寫等多個(gè)方面進(jìn)行優(yōu)化,提高代碼的執(zhí)行效率。

        參考文獻(xiàn):

        [1]王軍安,淺析嵌入式系統(tǒng)軟件優(yōu)化設(shè)計(jì)[J].計(jì)算機(jī)工程與應(yīng)用,2004.

        [2]覃征,王志敏等,程序設(shè)計(jì)方法與優(yōu)化[M].西安交通大學(xué)出版社,2004.

        [3]許汝峰譯,32位嵌入式系統(tǒng)編程[M].中國電力出版社,2002.

        [4]張義青、李華貴,嵌入式程序設(shè)計(jì)中C/C++代碼的優(yōu)化[J].微計(jì)算機(jī)信息,2003.

        [5]江開耀、張俊欄等,軟件工程[M].西安電子科技大學(xué)出版社,2004.

        作者簡介:

        王月青,河北清河人,邢臺(tái)職業(yè)技術(shù)學(xué)院信息工程系講師,工學(xué)碩士,從事信息技術(shù)的教學(xué)和研究。

        猜你喜歡
        程序代碼嵌入式系統(tǒng)面向?qū)ο?/a>
        面向?qū)ο蟮挠?jì)算機(jī)網(wǎng)絡(luò)設(shè)計(jì)軟件系統(tǒng)的開發(fā)
        電子測試(2018年15期)2018-09-26 06:01:34
        計(jì)算機(jī)網(wǎng)絡(luò)信息安全未來發(fā)展趨勢
        面向?qū)ο蟮臄?shù)據(jù)交換協(xié)議研究與應(yīng)用
        基于圖元裝接模式由程序流程圖自動(dòng)生成源代碼
        軟件工程(2016年11期)2017-01-17 16:56:57
        基于物聯(lián)網(wǎng)項(xiàng)目驅(qū)動(dòng)的嵌入式系統(tǒng)教學(xué)改革的研究與實(shí)踐
        嵌入式系統(tǒng)課程“中斷、異常與事件”教學(xué)實(shí)踐及啟示
        面向?qū)嵺`創(chuàng)新人才培養(yǎng)的嵌入式系統(tǒng)教學(xué)研究
        在DiskOnChip上構(gòu)建VxWorks系統(tǒng)開發(fā)環(huán)境
        面向?qū)ο骔eb開發(fā)編程語言的的評(píng)估方法
        面向?qū)ο笮畔⑻崛≈杏跋穹指顓?shù)的選擇
        河南科技(2014年10期)2014-02-27 14:09:03
        国产av色| 国产大片黄在线观看| 中文无码一区二区三区在线观看| 欧洲一卡2卡三卡4卡免费网站| 百合av一区二区三区| 精品视频在线观看一区二区有| 久久九九精品国产不卡一区| 成年美女黄网站色大免费视频| 人人色在线视频播放| 少妇被粗大的猛进69视频| 国产人妖xxxx做受视频| 国产一区二区亚洲一区| 亚洲av免费手机在线观看| gv天堂gv无码男同在线观看| 国产乱沈阳女人高潮乱叫老| 一区二区丝袜美腿视频| 深夜福利国产精品中文字幕| 久久aaaa片一区二区| 国产精品久久国产三级国不卡顿| 日韩中文在线视频| 国产亚洲精品高清视频| 91视色国内揄拍国内精品人妻| 国产av无码专区亚洲avjulia| 在线va免费看成| 久久国产精品超级碰碰热| 国产av精选一区二区| 天天躁夜夜躁狠狠是什么心态 | 久久一区二区av毛片国产| 久久精品国产字幕高潮| 国产欧美日韩综合精品二区| 亚洲综合日韩中文字幕| 亚洲中文字幕一二区精品自拍 | 精品视频在线观看日韩| 免费人成网站在线观看欧美| 艳妇乳肉豪妇荡乳av无码福利 | 亚洲日本国产乱码va在线观看| 人妻中文字幕在线一二区| 国产在线第一区二区三区| 亚洲熟少妇在线播放999| 中文字幕亚洲无线码a| 国产av精选一区二区|