歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > PPT文檔下載  

軟件性能與軟件優(yōu)化

  • 資源ID:240378577       資源大?。?span id="llgbemf" class="font-tahoma">858KB        全文頁數(shù):52頁
  • 資源格式: PPT        下載積分:25積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要25積分
郵箱/手機:
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機號,方便查詢和重復下載(系統(tǒng)自動生成)
支付方式: 微信支付   
驗證碼:   換一換

 
賬號:
密碼:
驗證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認打開,此種情況可以點擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標題沒有明確說明有答案則都視為沒有答案,請知曉。

軟件性能與軟件優(yōu)化

軟件性能與軟件優(yōu)化(V1.2)Page 2n培訓之前,你所理解的這次培訓的主題;n三天的培訓,我們的學習內(nèi)容是哪些?n如何評估我們的項目質(zhì)量;兩個問題Page 3軟件性能與軟件質(zhì)量Page 4培訓目標n軟件優(yōu)化的經(jīng)驗分享;n互動參與;n優(yōu)化的案例收集;n整理成文,指導以后的軟件設(shè)計;Page 5 軟件性能指在指定條件下,相對于資源使用總量,軟件產(chǎn)品提供恰當?shù)膱?zhí)行效果的能力,一般包括如下一些方面:1.時間響應:軟件產(chǎn)品執(zhí)行其功能時,提供恰當?shù)捻憫吞幚頃r間的能力;2.資源的使用效率:在指定條件下,軟件產(chǎn)品執(zhí)行其功能時,占用恰當?shù)馁Y源的能力;3.吞吐量:指單位時間內(nèi)能處理的事件個數(shù),或單位時間傳輸?shù)臄?shù)據(jù)量;軟件性能的定義Page 6分類度量名稱目標定義數(shù)據(jù)來源時間行為性響應時間完成特定任務的估計時間X=time(計算或模擬的)估算吞吐時間單位時間內(nèi)估計可以完成多少任務X=單位時間的任務數(shù))估算周轉(zhuǎn)時間完成一項完整工作(包括一組相關(guān)任務)的估計時間X=time(計算或模擬的)估算資源利用性I/O利用完成特定任務預計需要的IO利用。X=緩沖的數(shù)量(計算或模擬的)源代碼I/O利用消息密度在系統(tǒng)調(diào)用中與I/O相關(guān)的消息占源代碼的比例X=A/B;A=有關(guān)于I/O錯誤的消息數(shù);B=直接與系統(tǒng)調(diào)用相關(guān)的源代碼行數(shù);源代碼內(nèi)存利用完成特定任務產(chǎn)品需要占用的內(nèi)存數(shù)X=內(nèi)存大小內(nèi)存利用估計內(nèi)存利用消息密度在系統(tǒng)調(diào)用中與內(nèi)存利用相關(guān)的消息占源代碼的比例X=A/B;A=有關(guān)于內(nèi)存利用錯誤的消息數(shù);B=直接與系統(tǒng)調(diào)用相關(guān)的源代碼行數(shù);源代碼數(shù)據(jù)傳遞傳遞的效率X=數(shù)據(jù)量/時間估算性能一致性性能一致程度產(chǎn)品的性能與其他制度,標準和約定的一致性。X=A/B;A=實現(xiàn)了性能的項數(shù);B=需要與制度,標準和約定一致的項數(shù);相關(guān)標準和約定;需求;設(shè)計;代碼;評審報告;軟件性能的度量Page 7關(guān)于軟件性能n軟件性能與其他質(zhì)量屬性的關(guān)系;n軟件性能的一些誤區(qū);Page 8需求分析階段設(shè)計階段創(chuàng)建階段測試階段用戶現(xiàn)場性能確定性能指標性能設(shè)計并發(fā)設(shè)計分布式設(shè)計架構(gòu)設(shè)計代碼級別的優(yōu)化性能測試壓力測試性能采集軟件性能與研發(fā)階段性能,也是設(shè)計出來的性能,也是設(shè)計出來的Page 9軟件的優(yōu)化 優(yōu)化是一門工藝。優(yōu)化是一門工藝。大多數(shù)人認為代碼優(yōu)化是放在開發(fā)周期的最后一大多數(shù)人認為代碼優(yōu)化是放在開發(fā)周期的最后一段,然而,要想真正的設(shè)計一個優(yōu)化的程序,你必須在段,然而,要想真正的設(shè)計一個優(yōu)化的程序,你必須在開發(fā)過程中就要優(yōu)化,你需要認真考慮算法的選擇,權(quán)開發(fā)過程中就要優(yōu)化,你需要認真考慮算法的選擇,權(quán)衡速度和尺寸和其他限制因素。衡速度和尺寸和其他限制因素。你必須關(guān)注程序中那一部分需要快或慢,對它們你必須關(guān)注程序中那一部分需要快或慢,對它們的性能做仔細的測試。還有一個很重要的因素,需要權(quán)的性能做仔細的測試。還有一個很重要的因素,需要權(quán)衡程序在性能和代碼維護難度的比重。衡程序在性能和代碼維護難度的比重。Page 10一.需求階段的性能描述;二.設(shè)計階段的性能設(shè)計;三.開發(fā)階段的性能實現(xiàn);四.測試階段的性能驗證;Page 11一.需求階段的性能描述 1.列出系統(tǒng)的性能需求;2.用精確的數(shù)據(jù)指標來表達,包括最大吞吐量,響應和處理時間,資源的使用效率等;3.必須是系統(tǒng)可達到的數(shù)據(jù)指標;Page 12一.需求階段的性能描述 我們目前存在的問題:n項目需求階段的性能描述是否清晰?n性能的描述除了在需求階段,還在其他階段有所描述?n其他?Page 13舉例:ZXV10某產(chǎn)品的性能要求 1.最大32個2M終端接入能力;2.單畫面會議視頻在MCU的視頻延時小于200毫秒;3.關(guān)鍵DSP,CPU性能留有20%余量。4.關(guān)鍵CPU留有30%以上的空閑內(nèi)存;5.單板復位的時間小于6秒;6.最多16路的視頻混合;Page 14二.設(shè)計階段的性能設(shè)計設(shè)計階段能有哪些方法提高性能?Page 15二.設(shè)計階段的性能設(shè)計1.系統(tǒng)體系結(jié)構(gòu)的設(shè)計:系統(tǒng)的體系結(jié)構(gòu)從最基礎(chǔ)架構(gòu)上決定著整個系統(tǒng)的性能,如果這個階段的設(shè)計作不好,對以后的研發(fā)影響很大,其他優(yōu)化的設(shè)計無法彌補架構(gòu)的缺陷。Page 16二.設(shè)計階段的性能設(shè)計1.系統(tǒng)體系結(jié)構(gòu)的設(shè)計舉例 i.ZXV10 MCU:分組交換和電路交換 基于分組交換的H.323協(xié)議,對數(shù)據(jù)包直接進行處理,但是因為繼承原有基于時系交換的MCU,仍然采用時系交換,對于每個數(shù)據(jù)包都要進行包的拆解,時系拼湊操作,占用大量的CPU能力,也大大增加了軟件復雜度,后期的性能指標很難達到。ii.ZXJ10:MP模塊 MP模塊的設(shè)計采用工控機,大量操作的數(shù)據(jù)處理在本地硬盤;Page 17二.設(shè)計階段的性能設(shè)計2.軟件體系結(jié)構(gòu)的設(shè)計:軟件體系結(jié)構(gòu)也非常重要,同樣的硬件,不同的軟件架構(gòu),最后的系統(tǒng)性能差別非常大,對于各個任務的設(shè)計,任務間通訊的方式,任務優(yōu)先級的設(shè)置,任務同步的方式等,都要在系統(tǒng)設(shè)計階段好好考慮進來。Page 18二.設(shè)計階段的性能設(shè)計2.軟件體系結(jié)構(gòu)的設(shè)計舉例 i.時鐘節(jié)拍的設(shè)計,太低的頻率導致任務響應時間變大,太高的頻率會讓系統(tǒng)開銷太高,需要根據(jù)系統(tǒng)特點進行選擇,例如MPC8260的時鐘節(jié)拍可以選擇60-100;ii.對消息隊列的操作,是否采用阻塞方式等;舉例:為了獲得高精度的定時器,采用更高的系統(tǒng)時鐘;減少不必要的系統(tǒng)調(diào)用開銷;Page 19二.設(shè)計階段的性能設(shè)計3.硬件的選型:不同的處理器,性能不同,適用領(lǐng)域也不同,有的適用大量的運算,如DSP,有的適用通訊處理,所以,需要在芯片選型即確定哪些芯片是我們需要的,硬件選型錯誤帶來的影響也是致命的。Page 20二.設(shè)計階段的性能設(shè)計3.CPU的選型 舉例 ADI6834ADI6834IDT32438IDT32438Motorola 8260Motorola 8260IXP425IXP425內(nèi)核MIPS3000MIPS4000PowerPC603EStrongARM主頻200m300m200m400m指令cache16k16k32k32k數(shù)據(jù)cache8k16k32K(32+2)KSDRAM/DDR100M SDRAMDDR150M66M(64bit)SDRAM133M SDRAMPCI32bit/v2.2,帶arbiter32bit/v2.2,帶arbiter無32bit/v2.2,帶arbiter片上SRAM32kbyte1K*32bitCPM用與dcache共用MMU支持支持支持支持GPIO16bit323216UART2222DMA61022功耗2W2.4W2.4W2.2WOSvxWorks/linuxvxWorks/linuxvxWorksvxWorks/linux使用環(huán)境ADI+linux2.4IDT+linux2.48260+VxWorks IXP425+VxWorksPage 21二.設(shè)計階段的性能設(shè)計4.好的算法和數(shù)據(jù)結(jié)構(gòu):n選擇一個好的算法和好的數(shù)據(jù)結(jié)構(gòu),其影響遠遠大于選擇一個好的語言和好的編譯器;n算法對應用程序執(zhí)行速度的影響是最顯著的。n一個大量使用了排序的程序,使用堆排序的執(zhí)行速度遠大于使用冒泡排序的程序。n算法沒有好的優(yōu)化的程序,即使把它按照處理器的優(yōu)化指令做成了硬件版,它遠還是比不上使用了優(yōu)化算法的純軟件程序。n在我們做優(yōu)化的時候,一定要分析代碼中主要使用的算法,首先考慮是否有明顯更好的算法,如果有,馬上放棄現(xiàn)有的算法,避免在低效算法上進行徒勞的優(yōu)化。,Page 22二.設(shè)計階段的性能設(shè)計n好的算法和數(shù)據(jù)結(jié)構(gòu):例子:ZXV10非全交換的實現(xiàn);Page 23全交換的處理思路Page 24非全交換的處理思路Page 25二.設(shè)計階段的性能設(shè)計5.改造協(xié)議棧和操作系統(tǒng):底層軟件的效率,很大程度依賴操作系統(tǒng)和協(xié)議棧,很多時候并不能滿足要求,就需要定制操作系統(tǒng),來完成符合要求的模塊,同時,對于協(xié)議棧,因為分層結(jié)構(gòu),會導致性能的下降,在不能滿足需求的時候,也要進行裁減和修改,甚至需要重寫協(xié)議棧代碼,根據(jù)需求來開發(fā)定制協(xié)議棧。Page 26二.設(shè)計階段的性能設(shè)計5.改造協(xié)議棧和操作系統(tǒng) 舉例 i.改造TCP/IP協(xié)議棧:重寫適用系統(tǒng)的協(xié)議棧;ii.完善TCP/IP協(xié)議棧:對于UDP協(xié)議處理,不在進行socket的收發(fā)處理,而是直接從IP層獲得數(shù)據(jù)包進行處理,繞過UDP協(xié)議和SOCKET接口,減少內(nèi)存拷貝次數(shù),減少大量的查詢操作,從而大大提高程序效率。數(shù)據(jù)發(fā)送可以直接調(diào)用驅(qū)動層的發(fā)送函數(shù)。Page 27二.設(shè)計階段的性能設(shè)計6.驅(qū)動優(yōu)化設(shè)計 優(yōu)化的驅(qū)動設(shè)計可以讓整個軟件執(zhí)行效率大大提升,有經(jīng)驗的開發(fā)人員,特別是底層技術(shù)專家,可以設(shè)計出非常高效的驅(qū)動程序;Page 28二.設(shè)計階段的性能設(shè)計6.驅(qū)動優(yōu)化設(shè)計 舉例 單板同時處理16個2M終端數(shù)據(jù),每秒收發(fā)數(shù)據(jù)包達到3200個,每次中斷都要保存,恢復環(huán)境,占用大量CPU時間,通過設(shè)置BD表,每32個數(shù)據(jù)包產(chǎn)生一次中斷,而不是先前的一個數(shù)據(jù)包一次中斷,從而讓驅(qū)動效率提升200%,系統(tǒng)效率提升100%。同時,因為處理時間都在毫秒級別,對應用沒有影響;Page 29二.設(shè)計階段的性能設(shè)計7.CPU的特性:i.主頻:很多CPU都可以工作在不同的主頻下,例如MPC860T,可以在65M,50M,8260可以在200M,166M,133M等。ii.DMA:對于大量數(shù)據(jù)訪問,數(shù)據(jù)拷貝,DMA是提高程序效率很好的方法,但是要注意和主程序之間的異步操作。DMA雖然不會占用CPU時間,但是會和CPU爭奪總線資源;Page 30二.設(shè)計階段的性能設(shè)計7.CPU的特性:iii.CACHE的打開和關(guān)閉 CACHE的打開和關(guān)閉對于程序效率差別非常大,應該盡早打開數(shù)據(jù)和程序CACHE。同時,對于非常高效的代碼,例如小的驅(qū)動程序,可以鎖定到CACHE,從而提高局部代碼的運行效率;Page 31二.設(shè)計階段的性能設(shè)計7.CPU的特性:iv:字節(jié)對齊 對于系統(tǒng)中的大量數(shù)據(jù)拷貝,應該在設(shè)計的時侯就要考慮到字節(jié)對齊,這樣在調(diào)用memcpy的時侯,會很容易的進行字拷貝,長字拷貝,效率差別很大,字節(jié)對齊一定要在設(shè)計階段考慮進來,特別是緩沖區(qū)的設(shè)計;memcpy的實現(xiàn)機制;Page 32二.設(shè)計階段的性能設(shè)計7.動態(tài)內(nèi)存分配 (1)對于頻繁使用的數(shù)據(jù)結(jié)構(gòu),不要每次使用時候分配內(nèi)存,使用后馬上釋放。否則,如果你是在一個循環(huán)體內(nèi)使用它的,就會花費很多時間在分配和釋放內(nèi)存上。(2)內(nèi)存分配方式的選擇。使用標準C運行庫的Malloc()和Free()是最簡單也是最低效的方式;(3)創(chuàng)建內(nèi)存管理模塊;Page 33二.設(shè)計階段的性能設(shè)計 8.文件IO使用:硬盤是慢速設(shè)備,文件IO操作是一個非常消耗時間的操作。(1)使用標準C的fopen(),fread(),fwrite()等進行文件IO最簡單,最低效。(2)使用C+的IO流改進了效率,因為它往往對輸出的流進行緩沖,直到緩沖滿時候刷新,減少了磁訪問次數(shù)。(3)一個改進的方式是直接使用ReadFile()和WriteFile()等系統(tǒng)調(diào)用,自己管理緩沖區(qū)。(4)可以劇烈的改進IO操作的兩個方式是:內(nèi)存映像文件和異步文件IO。Page 34二.設(shè)計階段的性能設(shè)計 9.緩沖區(qū)的設(shè)計:緩沖區(qū),消息隊列大小等,也是根據(jù)系統(tǒng)的吞吐量來設(shè)計,注意不要出現(xiàn)緩沖區(qū)過小,或者消息隊列太小導致丟消息;Page 35三.開發(fā)階段的性能實現(xiàn) 開發(fā)階段都有哪些優(yōu)化方法?Page 36三.開發(fā)階段的性能實現(xiàn) 1.嵌入?yún)R編語言:匯編語言的效率要比C語言高很多,特別是一些要求效率非常高的算法,都需要用匯編實現(xiàn),匯編的開發(fā)效率并不高,所以,好的策略是在C程序中嵌入?yún)R編語言。Page 37三.開發(fā)階段的性能實現(xiàn) 1.嵌入?yún)R編語言 舉例 因為有大量的數(shù)據(jù)拷貝,系統(tǒng)提供的memcpy性能很低下,通過匯編代碼即可看出來,通過重新寫匯編代碼,則可以提供比原有實現(xiàn)高效很多的方法,注意,這個要保證輸入?yún)?shù)都是字對齊的,所以緩沖區(qū)也要設(shè)計成字對齊。先前的匯編代碼:略,重寫的memcpy匯編代碼:bcopyLongsm2m:_bcopyLongsm2m:addir3,r3,-4addir4,r4,-4mtctrr5bcfLGOm2m:lwzur7,4(r3)stwur7,4(r4)bdnzbcfLGOm2mblr Page 38三.開發(fā)階段的性能實現(xiàn) 2.使用優(yōu)化編譯選項:每個編譯器都有自己的優(yōu)化選項,如果可能,都設(shè)置成最高級的優(yōu)化。初期可以不打開優(yōu)化開關(guān),但是后期一定要打開,編譯開關(guān)打開后,可能系統(tǒng)發(fā)生異常崩潰,這多半和優(yōu)化選項無關(guān),而是系統(tǒng)中有時間敏感部分,在優(yōu)化后,代碼執(zhí)行更塊,導致運行異常。舉例:-o1 寄存器優(yōu)化,會將局部變量優(yōu)化成寄存器,性能提高很大,文件變小;-o2 局部優(yōu)化,會優(yōu)化匯編語句前后順序,會在函數(shù)內(nèi)部排流水線,性能提高很大,文件變小;-o3 文件級優(yōu)化,部分函數(shù)會被內(nèi)聯(lián),且可能會被內(nèi)聯(lián)后排流水線,性能提高與應用關(guān)系很大,文件可能變大;Page 39三.開發(fā)階段的性能實現(xiàn) 3.循環(huán)變量與條件判斷的使用:對于循環(huán)內(nèi)有判斷條件的,盡量把判斷條件轉(zhuǎn)移到循環(huán)語句外,這樣可以避免,每次循環(huán)都進行判斷操作,重要的是如果是dsp軟件,這樣會破壞流水線的工作,讓程序效率大大降低。for(循環(huán)條件)if(條件判斷)if(條件1)&(條件2)continue;do Page 40三.開發(fā)階段的性能實現(xiàn) 4.條件語句,switch語句的判斷順序。對于多重條件語句,應該把執(zhí)行次數(shù)最多的條件分支放在最前面,按可能的調(diào)用頻率來排列順序。switch(tMsg.cMsgType)case BOARD_INFO_REQ:/*0 x00 處理板信息請求消息:MPC860-MPC8260-C6202 OK!*/ProcessBoardInfoReq(&tMsg);break;case IP_ADDR_IND:/*0 x02 處理IP地址指示消息:MPC860-MPC8260 OK!*/ProcessChangeIp(&tMsg);break;Page 41三.開發(fā)階段的性能實現(xiàn) 5.注意類型轉(zhuǎn)換。一個頻繁使用的循環(huán)體內(nèi)作從double到int的轉(zhuǎn)換會消耗可能比計算本身還多的時間。Page 42三.開發(fā)階段的性能實現(xiàn) 6.使用寄存器變量。register會讓編譯器把指定變量放到寄存器,提高運行效率。參數(shù),局部變量;Page 43三.開發(fā)階段的性能實現(xiàn) 7.短路語句。/*如果不是UDP協(xié)議或者不是本地包,則釋放,直接返回*/if(pIpHead-cProtocol!=PROTOCOL_UDP)&(g_ptEnilMng-nIP!=(*(UINT32*)pIpHead-cDestination)m_freem(*pPtrMbuf);return TRUE;Page 44四.測試階段的性能驗證 測試階段如何驗證性能?Page 45四.測試階段的性能驗證 工具軟件的使用。1.Rational Robot;2.CPU性能測試工具;3.大容量數(shù)據(jù)包發(fā)送軟件;4.實際設(shè)備模擬軟件;Page 46五.優(yōu)化的關(guān)鍵點 性能是需要從需求,設(shè)計,實現(xiàn)到測試都應該考慮的內(nèi)容,代碼優(yōu)化是一個可以永無止境的工作,優(yōu)化工作可能滲透到應用程序的各個細節(jié)和軟件開發(fā)的各個階段,對軟件工程的管理控制是不利的。它會花費了開發(fā)人員更多的精力和時間來大量的修改代碼甚至修改最初的設(shè)計。Page 47五.優(yōu)化的關(guān)鍵點 1.架構(gòu)方面的專家;2.底層軟件技術(shù)的專家;Page 48六.推廣建議 性能是所有產(chǎn)品都要關(guān)注的質(zhì)量屬性,公司各個事業(yè)部在這方面的積累也非常多,如果能把各個事業(yè)部的設(shè)計案例和經(jīng)驗匯總起來,指導我們進行設(shè)計和實現(xiàn),會有非常大的幫助;n專家的培養(yǎng),一個專家勝過大量普通的開發(fā)人員,對于攻關(guān)問題的解決至關(guān)重要;n優(yōu)化經(jīng)驗的積累,對于一個產(chǎn)品線非常重要;n過程數(shù)據(jù),信息收集和總結(jié)對于優(yōu)化的經(jīng)驗積累幫助很大,一定要保存原始的數(shù)據(jù)和優(yōu)化的過程記錄;n在需求,設(shè)計,實現(xiàn),測試各個階段,真正把性能重視起,而不是最終的補救;Page 49六.推薦書籍1.軟件架構(gòu)評估;2.軟件架構(gòu)實踐;3.編程珠璣;4.軟件優(yōu)化技術(shù)IA-32平臺的高性能手冊;5.相關(guān)操作系統(tǒng),CPU手冊等;6.程序設(shè)計實踐;Page 50歡迎提問和討論n印象深刻的內(nèi)容:n培訓需要改進的地方:n培訓值得借鑒的地方:Page 51知識回顧知識回顧Knowledge Knowledge ReviewReviewPage 52 結(jié)束語結(jié)束語若有不當之處,請指正,謝謝!若有不當之處,請指正,謝謝!

注意事項

本文(軟件性能與軟件優(yōu)化)為本站會員(優(yōu)***)主動上傳,裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng)(點擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因為網(wǎng)速或其他原因下載失敗請重新下載,重復下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  sobing.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!