




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、基于挪動(dòng)仄臺(tái)的利用硬件機(jī)能劣化妙技研討基于挪動(dòng)仄臺(tái)的利用硬件機(jī)能劣化妙技研討因?yàn)榕矂?dòng)智能系統(tǒng)是一個(gè)資本受限的系統(tǒng),它對(duì)步伐的運(yùn)轉(zhuǎn)空間戰(zhàn)工夫要供比桌里系統(tǒng)更減刻薄,果而,利用硬件的劣化對(duì)挪動(dòng)智能系統(tǒng)去道尤隱需要戰(zhàn)慌張1。本文慌張研討的機(jī)能劣化是慌張指運(yùn)轉(zhuǎn)速度的劣化。利用硬件對(duì)其運(yùn)轉(zhuǎn)速度停頓劣化是指正在充分把握硬、硬件特征的底子上,經(jīng)由過程利用步伐構(gòu)制調(diào)整等本收去收縮完成指定使命所需的運(yùn)轉(zhuǎn)工夫,慌張利用正在對(duì)及時(shí)性要供比力下的場(chǎng)所。如古,挪動(dòng)智能系統(tǒng)的處置懲獎(jiǎng)器正在物理上也支撐多線程的并收嘗試,采納得當(dāng)數(shù)目的并收線程可以獲得比單一線程下的運(yùn)轉(zhuǎn)速度2。塞責(zé)多核系統(tǒng)中的利用硬件機(jī)能劣化,本文研討了基于
2、Andrid系統(tǒng)的并止步伐設(shè)策畫法戰(zhàn)并止步伐機(jī)能劣化妙技。1我們經(jīng)由過程一個(gè)真踐利用去闡收、研討基于挪動(dòng)仄臺(tái)的利用硬件劣化的妙技包羅并止處置懲獎(jiǎng)妙技、多線程劣化妙技和利用GPAGraphisPerfraneAnalyzers東西幫手闡收妙技。本例是一個(gè)供圓周率的利用。有以下數(shù)教公式:將積分公式暗示為極限:真踐上x沒有成能做到無量小,本文由搜集拾掇整頓只能讓x盡年夜要小,多么供出的成果越接遠(yuǎn)。我們用step暗示一個(gè)x,那么nu_step=1/step盡管天年夜。考慮到fx=1/x2+1是一個(gè)凸函數(shù),那里與一其中值去供戰(zhàn),即利用fi+0.5/nu_steps去替代fi/nu_steps供戰(zhàn),多么供
3、出的戰(zhàn)沒有會(huì)老是比真踐值偏偏校終了可以得出編寫步伐按照的公式為:按照上里公式我們編寫出響應(yīng)的策畫步伐。2本初利用已經(jīng)劣化研討與闡收我們起尾按照上述公式間接推導(dǎo)出利用的策畫代碼,此代碼是出有經(jīng)過劣化的,我們稱其為本初利用,將其命名為SerialPi。該利用謀劃思路是:讓策畫的使命放正在幫手線程那里稱為使命線程中運(yùn)轉(zhuǎn),主舉動(dòng)上設(shè)置按鈕去獨(dú)霸線程的運(yùn)轉(zhuǎn),并用一個(gè)TextVie去暗示使命線程的成果。利用運(yùn)轉(zhuǎn)的界里如圖1所示。利用啟動(dòng)后的界里如圖1a所示。當(dāng)我們面擊開端策畫按鈕后,界里部分的按鈕皆釀成灰色,曲到策畫的線程運(yùn)算完成。那時(shí),界里暗示的策畫成果和線程運(yùn)轉(zhuǎn)的總工夫,如圖1b所示。從上述運(yùn)轉(zhuǎn)界里可
4、知,此利用策畫的工夫估計(jì)為22秒多。屢次運(yùn)轉(zhuǎn)此利用,其暗示的策畫工夫也估計(jì)為此時(shí)少。圖1SerialPi利用運(yùn)轉(zhuǎn)的界里2.1正在本初利用中新建線程類yTaskThread,讓其策畫的值。編輯源文件yTaskThread.java,慌張代碼以下:2publilassyTaskThreadextendsThread3privateHandlerainHandler;4publistatifinalintSG_FINISHED=1;/定義暗示策畫完畢的動(dòng)靜范例5privatestatifinallngnu_steps=200000000;/公式中的nu_steps變量,總步數(shù)6privatestat
5、ifinaldublestep=1.0/nu_steps;/公式中的step變量,步少7publistatidublepi=0.0;/的策畫成果20publividrun2122dublex,su=0.0;23lngi;24fri=0;inu_steps;i+25x=i+0.5*step;26su=su+4.0/1.0+x*x;2728pI=step*su;29essagesg=neessage;30sg.hat=SG_FINISHED;/定義動(dòng)靜范例31ainHandler.sendessagesg;/收支動(dòng)靜第22止至第28止是按照策畫公式謄寫的策畫的代碼。那里x變量是函數(shù)fx=1/x2+
6、1的自變量x,su是的乏積變量。乏積完后,終了正在第28止,讓=step算出終了成果?!菊诰€程的run函數(shù)中,一旦策畫完成,正在第29止開端,便背主線程收支策畫完成的動(dòng)靜】2.2編輯主步伐的源代碼文件ainAtivity.java,讓其獨(dú)霸線程的運(yùn)轉(zhuǎn),并暗示策畫成果,其慌張代碼以下:2publilassainAtivityextendsAtivity13privateyTaskThreadyThread=null;14privateTextVietv_TaskutputInf;/暗示策畫使命線程輸出15privateHandlerHandler;16privatelngend_tie;17p
7、rivatelngtie;18privatelngstart_tie;38Handler=neHandler39publividhandleessageessagesg40sithsg.hat4142aseyTaskThread.SG_FINISHED:43end_tie=Syste.urrentTieillis;44tie=end_tie-start_tie;45Strings=運(yùn)轉(zhuǎn)完畢,Pi=+yTaskThread.pi+耗時(shí):46+yTaskThread.sTieTDatetietie;47tv_TaskutputInf.setTexts;48btn_ExitApp.setEnable
8、dtrue;49break;50default:break;61privatevidstartTask62yThread=neyTaskThreadHandler;/創(chuàng)坐一個(gè)線程63if!yThread.isAlive6465start_tie=Syste.urrentTieillis;66yThread.start;/啟動(dòng)線程我們起尾正在16止-第18止定義了三個(gè)變量,使命的開端工夫start_tie,使命的完畢工夫end_tie,和使命的運(yùn)轉(zhuǎn)時(shí)少tie。它們存正在以下閉連:tie=end_tie-start_tie。正在第65止,我們正在啟動(dòng)使命線程的同時(shí),將機(jī)器確當(dāng)前工夫記載正在star
9、t_tie中。正在第43止第44止,當(dāng)支到使命線程運(yùn)轉(zhuǎn)終了的動(dòng)靜后,將機(jī)器確當(dāng)前工夫記載正在end_tie中,二者相減獲得使命的運(yùn)轉(zhuǎn)時(shí)少。2.3利用GPA東西去考證與評(píng)價(jià)本初利用的機(jī)能。上述事情完成后,我們將利用擺設(shè)到真踐的智能裝備上停頓測(cè)試。本例我們慌張監(jiān)控闡收兩個(gè)PU的背載即PUXXLad目的狀況。正在監(jiān)控時(shí)期,我們面擊開端策畫按鈕開端運(yùn)轉(zhuǎn)策畫,記載下GPA的監(jiān)控疑息,闡收的成果如圖2所示。a面擊開端策畫按鈕后b線程策畫運(yùn)轉(zhuǎn)中線程策畫完畢圖2本初利用SerialPiGPA截圖圖2a是面擊開端策畫按鈕,策畫使命線程運(yùn)轉(zhuǎn)開端時(shí)的暗示。圖2b是策畫使命線程運(yùn)轉(zhuǎn)中的暗示。圖2是策畫使命線程運(yùn)轉(zhuǎn)完畢
10、時(shí)的暗示。從圖中可知,策畫線程出有運(yùn)轉(zhuǎn)或運(yùn)轉(zhuǎn)竣事后,PU的背載仄息正在較低程度。而一旦策畫線程運(yùn)轉(zhuǎn),PU的背載慢劇上降到100%的謙背荷程度。可是,正在策畫線程運(yùn)轉(zhuǎn)時(shí),兩個(gè)PU中初終只要一個(gè)PU是謙背荷的,另外一個(gè)處于低背載程度,也便是道總的背載率即背載之戰(zhàn)只要一個(gè)PU處于謙背荷形態(tài)。3對(duì)本初利用的機(jī)能劣化上里的例子,是從策畫的公式間接念到的代碼。那個(gè)例子有出有年夜要真現(xiàn)劣化呢?怎樣去劣化呢?正在此,我們對(duì)算法停頓革新,充分利用多核處置懲獎(jiǎng)器的硬件特征去停頓劣化,挖客出多核處置懲獎(jiǎng)器的機(jī)能潛力。多核處置懲獎(jiǎng)器具有多核、多線程妙技,支撐多線程正在物理上的并交運(yùn)轉(zhuǎn)。例如,塞責(zé)上例的運(yùn)轉(zhuǎn)狀況,那個(gè)多
11、核處置懲獎(jiǎng)器便可以支撐兩個(gè)線程的并交運(yùn)轉(zhuǎn)。那便是我們算法劣化的切進(jìn)面:我們采納分治法的思路,念法讓策畫使命分?jǐn)偟蕉鄠€(gè)本例是兩個(gè)線程中去運(yùn)轉(zhuǎn),多么并交運(yùn)轉(zhuǎn)的線程便可以放慢運(yùn)轉(zhuǎn)速度。起尾,我們闡收一下以上例子的yTaskThread類的run函數(shù)代碼。為了策畫積分里積的乏計(jì)值,我們正在第24止讓策畫步每次乏計(jì)一步去策畫。真踐上,我們將積分乏計(jì)天區(qū)分紅塊,每個(gè)線程當(dāng)真策畫其中的一塊,終了將每個(gè)線程策畫的乏計(jì)里積匯總起去,多么既可以獲得終了的成果,又能分而治之完成使命的分撥嘗試。那便是我們真現(xiàn)算法劣化的思路。我們把劣化后的利用命名為ThreadPi。該利用正在策畫積分里積的乏計(jì)值時(shí),讓每個(gè)線程的策畫步
12、每次乏計(jì)步少刪減總線程數(shù),多么讓每個(gè)線程當(dāng)真乏計(jì)本人當(dāng)真的條帶的里積。該利用運(yùn)轉(zhuǎn)的界里如圖3所示。圖3ThreadPi利用運(yùn)轉(zhuǎn)的界里此利用運(yùn)轉(zhuǎn)的界里與本初利用齊整。從上述運(yùn)轉(zhuǎn)界里可知,此利用策畫的工夫估計(jì)為13秒多。當(dāng)工夫幾乎收縮到本初利用的一半。與本初利用紛歧樣的是,本利用利用兩個(gè)線程去策畫。3.1本利用是正在建正本初利用代碼的底子上獲得的,其閉鍵的建正以下。建正策畫使命線程類yTaskThread的源代碼文件以下:4publilassyTaskThreadextendsThread5privateHandlerainHandler;6publistatifinalintSG_FINISHE
13、D=1;/定義暗示策畫完畢的動(dòng)靜范例7privatestatifinallngnu_steps=200000000;/公式中的nu_steps變量,總步數(shù)8privatestatifinaldublestep=1.0/nu_steps;/公式中的step變量,步少9publistatidublepi=0.0;/的策畫成果10publistatifinalintnu_threads=2;/線程數(shù)11privateintyNu;/線程號(hào)12privatestatibjetsharedVariable=nebjet;/對(duì)pi變量的同步鎖變量13privatestatiintfinishedThrea
14、dNu=0;/完成策畫的線程數(shù)28publividrun2930dublex,partialSu=0.0;31lngi;32fri=yNu;inu_steps;i+=nu_threads33x=i+0.5*step;34partialSu+=4.0/1.0+x*x;3536synhrnizedsharedVariable37pi+=partialSu*step;38finishedThreadNu+;39iffinishedThreadNu=nu_threads/等部分線程運(yùn)轉(zhuǎn)完畢收支動(dòng)靜40essagesg=neessage;41sg.hat=SG_FINISHED;/定義動(dòng)靜范例42ain
15、Handler.sendessagesg;/收支動(dòng)靜43上述代碼中陰影標(biāo)注翰朱是本利用與本初利用慌張區(qū)此外處所。正在第10止-第13止我們定義了多線程策畫使命所需的變量。nu_threads是策畫使命開拓的線程數(shù)。本例運(yùn)轉(zhuǎn)的裝備為兩個(gè)邏輯PU,故將此值設(shè)為2。yNu是策畫線程的編號(hào),它從0到nu_threads-1范疇內(nèi)挑選。sharedVariable變量是對(duì)pi變量施減同步鎖而引進(jìn)的變量。finishedThreadNu是完成策畫的線程數(shù),可是該值即是nu_threads便覺得部分的策畫線程皆已運(yùn)轉(zhuǎn)完畢。第30止-第43止是策畫線程的本型代碼。其中第30止-第35止是策畫的間接代碼。塞責(zé)本
16、初利用的響應(yīng)代碼可知,本初利用的su變量被partialSu所替代,它暗示本線程策畫的戰(zhàn)里積只是部分戰(zhàn)里積的一部門。最慌張的區(qū)分是第32止,那里步少變量i乏減的沒有是1,而是nu_threads,即每次皆是背前挪動(dòng)線程數(shù)步。而i起初地位也沒有是本初利用的從0開端,而是從線程號(hào)開端。當(dāng)線程策畫完本人的戰(zhàn)以后,需要將此數(shù)據(jù)放到總的戰(zhàn)pi變量中去。那是一個(gè)多線程同享的變量,果而需要減同步鎖。那一步伐對(duì)應(yīng)第36止第44止。第36止減同步鎖,第37即將線程本人的策畫成果減到群寡成果pi中去。第38即將策畫完畢的線程數(shù)減一。第39止,經(jīng)由過程比力完成策畫的線程數(shù)與總的線程數(shù)去斷定部分策畫線程能可皆已完畢,
17、只要皆完畢了,才背主線程收支策畫完畢的動(dòng)靜。3.2建正主步伐ainAtivity的源代碼文件ainAtivity.java以下:12publilassainAtivityextendsAtivity13privateyTaskThreadthrd=null;14privatelngend_tie;15privatelngtie;16privatelngstart_tie;64privatevidstartTask65thrd=neyTaskThreadyTaskThread.nu_threads;66start_tie=Syste.urrentTieillis;67frinti=0;iyTas
18、kThread.nu_threads;i+68thrdi=neyTaskThreadHandler;/創(chuàng)坐一個(gè)線程69thrdi.setStepStartNui;70thrdi.start;7173privatevidexitApp74frinti=0;iyTaskThread.nu_threadsthrd!=null;i+75try76thrdi.jin;/等待線程運(yùn)轉(zhuǎn)完畢77athInterruptedExeptine78上述代碼中陰影標(biāo)注翰朱是本利用與本初利用慌張區(qū)此外處所。正在第13止,本初利用的單個(gè)線程?hào)|西變量改成了線程數(shù)組。正在啟動(dòng)策畫使命的第67止第71止,本初利用啟動(dòng)單個(gè)線程,改成啟動(dòng)數(shù)組中的部分線程,并正在啟動(dòng)時(shí)設(shè)置線程的編號(hào)。正在等待線程完畢的第74止-第78止,本初利用中等待單個(gè)線程完畢,改成等待線程數(shù)組中的部分線程完畢。上述事情
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國(guó)油性油墨數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 《讀書:目的和前提》教學(xué)設(shè)計(jì) 2024-2025學(xué)年統(tǒng)編版高中語(yǔ)文必修上冊(cè)
- 1-2 《齊桓晉文之事》教學(xué)設(shè)計(jì) 2023-2024學(xué)年統(tǒng)編版高中語(yǔ)文必修下冊(cè)
- 2025年黑龍江民族職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)審定版
- 2025年電子油門踏板項(xiàng)目建議書
- 2025年甘肅省白銀市單招職業(yè)適應(yīng)性測(cè)試題庫(kù)完整
- 黑龍江省佳木斯市三校聯(lián)考2023-2024學(xué)年高二上學(xué)期1月期末考試地理試題(解析版)
- 2025至2030年中國(guó)無水磷酸氫鈣數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)摩托車護(hù)膝數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)接地系統(tǒng)監(jiān)視器數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 保安公司新項(xiàng)目進(jìn)場(chǎng)方案(2篇)
- 《垃圾發(fā)電廠爐渣處理技術(shù)規(guī)范》
- 法律基礎(chǔ)知識(shí)500題及參考答案(滿分必刷)
- 環(huán)境空氣氣態(tài)污染物(SO2、NO2、O3、CO)連續(xù)自動(dòng)監(jiān)測(cè)系統(tǒng)安裝驗(yàn)收技術(shù)規(guī)范(HJ 193-2013部分代替 HJ-T 193-2005)
- 《生活垃圾轉(zhuǎn)運(yùn)站技術(shù)規(guī)范+CJJT+47-2016》詳細(xì)解讀
- 總體國(guó)家安全觀-創(chuàng)新引領(lǐng)10周年全文課件
- 鳥類知識(shí)科普課件
- 中國(guó)通用電氣有限公司員工手冊(cè)
- 自建房培訓(xùn)課件甘肅
- 閩教版四年級(jí)下冊(cè)勞動(dòng)教案
- 汽車電氣設(shè)備構(gòu)造與維修(高職版)全套教學(xué)課件
評(píng)論
0/150
提交評(píng)論