Gprof優(yōu)化初探
- 期刊名字:電腦學(xué)習(xí)
- 文件大小:328kb
- 論文作者:林英建
- 作者單位:渤海大學(xué)公共計(jì)算機(jī)教研部
- 更新時(shí)間:2020-09-29
- 下載次數(shù):次
2009年4月電腦學(xué)習(xí)第2期Gprof優(yōu)化初探林英建*摘要: 論迷了得到多蛾程情況下系統(tǒng)運(yùn)行的相關(guān)信息的解決方案,以及避免敷據(jù)不一致情況的優(yōu)化方法。關(guān)鍵詞: Cprof系統(tǒng)分析優(yōu)化中圖分類號(hào): TP301文獻(xiàn)標(biāo)識(shí)碼: B文章編號(hào): 1002- -2422 2009 )02- 0111-01Disucussion on Gprof OptimizationLin YingjianAbstract: The paper discuses eolution plan of related information of multi-hread syslem running, and studies the optimizationmethod to avoid data inconsistence.Keyword: GprodfSystem AnalysisOptimizationCprof是CNU profiler 工具,可以用來分析系統(tǒng)在運(yùn)行程序中會(huì)有相應(yīng)的函數(shù)捕捉該信號(hào),捕捉到該信號(hào)后,置一時(shí)各函數(shù)調(diào)用的次數(shù),耗時(shí)等情況,可以方便地幫助定位系個(gè)退出標(biāo)記,這樣就可以控制程序按照既定的邏輯在處理統(tǒng)的瓶頸,同時(shí)也能幫助確定程序的優(yōu)化位置盡可能大的完一次完整的工作后正常退出。提升系統(tǒng)性能。Gprof 優(yōu)化尤其適用于CPU、內(nèi)存等密集性另一個(gè)值得關(guān)注的問題,在上線程序、重啟程序時(shí),通的應(yīng)用模塊。常都是使用klll -9來停止原有程序的,這實(shí)際上存在較1 Gprof 的安裝使用大風(fēng)險(xiǎn)。若程序在執(zhí)行時(shí)存在-些持久化的操作,如寫磁盤在linux主機(jī)上安裝Gprof后,詳細(xì)的參數(shù)可通過man操作多次完成,又如先寫數(shù)據(jù)、再寫索引等這應(yīng)該是在邏輯gprof 查看。需要重點(diǎn)指出的是,在目前的實(shí)際應(yīng)用中,線上上的原子操作,那么kllall -9 的隨機(jī)性可能破壞其原子的Gprof對(duì)多線程支持不好,直接調(diào)用只能得到主線程的相性,從而造成潛在的數(shù)據(jù)不一致。如常用的transfer中就存關(guān)信息。參考相關(guān)資料分析,其原因?yàn)镚prof采用ITIMER_在這種數(shù)據(jù)不- -致的隱患。雖然出現(xiàn)的概率不是很高,但PROF信號(hào),在多線程內(nèi),只有主線程才能響應(yīng)該信號(hào)。為是,長期的積累這種不一-致性是會(huì)慢慢體現(xiàn)出來的。此,需要使用系統(tǒng)提供的grol-helper.c.將其編譯為so庫,2常見的優(yōu)化手段命令為:由于系統(tǒng)的優(yōu)化是一一個(gè)較為復(fù)雜的問題, 在此將不做gce -shared -IPIC gprof- helper.c -ogprol-belper.so -lpthread -ld詳盡的敘述僅提供一些經(jīng)驗(yàn)供參考。so的作用實(shí)際上實(shí)現(xiàn)- -個(gè) ptread creale 的鉤子程序,(1)循環(huán)體內(nèi)部節(jié)約n條指令,最終收益將乘以循環(huán)這樣在調(diào)用phread_creale函數(shù)時(shí)就會(huì)調(diào)用到庫中提供的次數(shù)。常見的如將循環(huán)體內(nèi)不改變的變量移動(dòng)到循環(huán)體外;pthread_ create 函數(shù),從而實(shí)現(xiàn)在多線程情況下統(tǒng)計(jì)運(yùn)行時(shí)多重循環(huán)嵌套時(shí)的順序問題等。這種優(yōu)化是收益較高的。的相關(guān)信息。在實(shí)際使用中,只要在用戶的makefile文件(2)優(yōu)化函數(shù)調(diào)用。這是優(yōu)化提高非常明顯的一種方中,加上編譯選項(xiàng)-pg及動(dòng)態(tài)鏈接庫,如:式,常見的方式如函數(shù)inline,這樣可以節(jié)約大量的函數(shù)調(diào)gce -pg inbs, main.cp .1 grof-eper.o$8 (INCLUDE) $ (ID-用的開銷,避免多次的壓棧出棧。FLACS) $ (LDLIBS)(3)優(yōu)化內(nèi)存尋址,避免重復(fù)的內(nèi)存尋址.這樣在編譯后會(huì)生成-一個(gè)行文件a.out文件.就是包含(4)優(yōu)化cpu流水線的分支預(yù)測(cè)成功率。例如,當(dāng)前存相關(guān)統(tǒng)計(jì)功能的可執(zhí)行文件。程序運(yùn)行并“正?!蓖顺龊?,在有ir-ele if-ele 語句,將滿足概率最高的條件放到靠前會(huì)生成一個(gè)運(yùn)行時(shí)的統(tǒng)計(jì)文件gmon.out 文件。使用命令的位置不僅能減少判斷和跳轉(zhuǎn)指令的執(zhí)行,還有利于cepugprof -b a.out gmon.out 就可以將readable的信息輸出,這在流水作業(yè)時(shí)分支預(yù)測(cè)的成功率,提高指令的流水化。些信息可以作為優(yōu)化的依據(jù)。需要強(qiáng)調(diào)的是,上面提到的優(yōu)化內(nèi)存尋址和優(yōu)化cpu流水線分支預(yù)測(cè)的成功率兩“正?!蓖顺鍪侵赋绦蚴前凑兆陨淼倪\(yùn)行邏輯正常退出的,種優(yōu)化方法單獨(dú)優(yōu)化的提升不會(huì)很大,但是如果是在大量如果直接klll -9是不能得到統(tǒng)計(jì)結(jié)果的。通常程序都是的循環(huán)體內(nèi)部,提升就會(huì)被放大很多倍。在循環(huán)中長時(shí)間運(yùn)行,所以,實(shí)際中采用相應(yīng)SICTERM 信參考文獻(xiàn)號(hào)的方式,使用kilall 8 15, 發(fā)送SIGTERM信號(hào)給程序,[1] htp中國煤化I43495.pr.MYHCNMHG收稿日期: 2008-11-14$林英建渤海大學(xué)公共計(jì)算機(jī)教研部(遼寧,錦州121000) ●●111●
-
C4烯烴制丙烯催化劑 2020-09-29
-
煤基聚乙醇酸技術(shù)進(jìn)展 2020-09-29
-
生物質(zhì)能的應(yīng)用工程 2020-09-29
-
我國甲醇工業(yè)現(xiàn)狀 2020-09-29
-
石油化工設(shè)備腐蝕與防護(hù)參考書十本免費(fèi)下載,絕版珍藏 2020-09-29
-
四噴嘴水煤漿氣化爐工業(yè)應(yīng)用情況簡介 2020-09-29
-
Lurgi和ICI低壓甲醇合成工藝比較 2020-09-29
-
甲醇制芳烴研究進(jìn)展 2020-09-29
-
精甲醇及MTO級(jí)甲醇精餾工藝技術(shù)進(jìn)展 2020-09-29

