嵌入式Linux 內(nèi)存使用與性能優(yōu)化

出版時(shí)間:2009-5  出版社:機(jī)械工業(yè)出版社  作者:史子旺,葉超群,蔡建宇 編著  頁數(shù):316  字?jǐn)?shù):502000  
Tag標(biāo)簽:無  

前言

  隨著信息科學(xué)與技術(shù)的迅速發(fā)展,人類每時(shí)每刻都會(huì)面對層出不窮的新技術(shù)和新概念。毫無疑問,在節(jié)奏越來越快的工作和生活中,人們需要通過閱讀和學(xué)習(xí)大量信息豐富、具備實(shí)踐指導(dǎo)意義的圖書來獲取新知識(shí)和新技能,從而不斷提高自身素質(zhì),緊跟信息化時(shí)代發(fā)展的步伐。  眾所周知,在計(jì)算機(jī)硬件方面,高性價(jià)比的解決方案和新型技術(shù)的應(yīng)用一直備受青睞;在軟件技術(shù)方面,隨著計(jì)算機(jī)軟件的規(guī)模和復(fù)雜性與日俱增,軟件技術(shù)不斷地受到挑戰(zhàn),人們一直在為尋求更先進(jìn)的軟件技術(shù)而奮斗不止。目前,計(jì)算機(jī)在社會(huì)生活中口益普及,隨著Intemet延伸到人類世界的方方面面.掌握計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)和理論已成為大眾的文化需求。由于信息科學(xué)與技術(shù)在電工、電子、通信、工業(yè)控制、智能建筑、工業(yè)產(chǎn)品設(shè)計(jì)與制造等專業(yè)領(lǐng)域中已經(jīng)得到充分、廣泛的應(yīng)用。所以這些專業(yè)領(lǐng)域中的研究人員和工程技術(shù)人員越米越迫切需要汲取自身領(lǐng)域信息化所帶來的新理念和新方法?! ♂槍θ藗兞私夂驼莆招轮R(shí)、新技能的熱切期待,以及由此促成的人們對語言簡潔、內(nèi)容充實(shí)、融合實(shí)踐經(jīng)驗(yàn)的圖書迫切需要的現(xiàn)狀,機(jī)械工業(yè)出版社適時(shí)推出了“信息科學(xué)與技術(shù)叢書”。這套叢書涉及計(jì)算機(jī)軟件、硬件、網(wǎng)絡(luò)和工程應(yīng)用等內(nèi)容,注重理論與實(shí)踐的結(jié)合,內(nèi)容實(shí)用、層次分明、語言流暢。是信息科學(xué)與技術(shù)領(lǐng)域?qū)I(yè)人員不可或缺的參考書。

內(nèi)容概要

本書主要講述嵌入式系統(tǒng)開發(fā)中的兩個(gè)難點(diǎn):系統(tǒng)的內(nèi)存使用與系統(tǒng)性能優(yōu)化。    關(guān)于系統(tǒng)的內(nèi)存使用,本書試圖完成兩項(xiàng)任務(wù):①增加系統(tǒng)整體的空閑內(nèi)存數(shù)量,從而提高進(jìn)程的并發(fā)能力;②使系統(tǒng)在長時(shí)間運(yùn)行后,仍然能夠保持較高數(shù)量的空閑內(nèi)存。本書所講述的內(nèi)存使用,不是Linux內(nèi)核的內(nèi)存管理,而是在用戶層觀察進(jìn)程是如何使用內(nèi)存的。    關(guān)于系統(tǒng)性能優(yōu)化,本書不同于同類書側(cè)重編程語法或者發(fā)揮硬件性能的做法,而是著眼于大型軟件項(xiàng)目性能優(yōu)化實(shí)踐,闡明了邏輯優(yōu)化與代碼優(yōu)化的辯證關(guān)系,提出了軟件優(yōu)化層次的概念。針對代碼優(yōu)化,闡述了代碼優(yōu)化的境界,為代碼優(yōu)化指明了研究方向。對于編程過程中的一些常用元素,通過查看匯編代碼的方式,闡述了其性能上的差別。    本書適合嵌入式系統(tǒng)開發(fā)人員閱讀,也可供有一定經(jīng)驗(yàn)的C/C++程序員和Linux程序員參考。

書籍目錄

出版說明前言第一篇 內(nèi)存使用 第1章 內(nèi)存的測量   1.1 系統(tǒng)當(dāng)前可用內(nèi)存   1.2 進(jìn)程的內(nèi)存使用     1.2.1 虛擬內(nèi)存與物理內(nèi)存     1.2.2 /proe/(pid)     1.2.3 內(nèi)存回收 第2章 進(jìn)程內(nèi)存優(yōu)化  2.1 執(zhí)行文件     2.1.1 堆段     2.1.2 棧       2.1.3 環(huán)境變量及參數(shù)     2.1.4 ELF文件     2.1.5 數(shù)據(jù)段     2.1.6 代碼段     2.1.7 使用Thumb指令   2.2 動(dòng)態(tài)庫     2.2.1 數(shù)據(jù)段     2.2.2 代碼段     2.2.3 動(dòng)態(tài)庫的優(yōu)化   2.3 靜態(tài)庫   2.4 線程     2.4.1 設(shè)置進(jìn)程棧空間     2.4.2 設(shè)置線程??臻g     2.4.3 減少線程的數(shù)量   2.5 共享內(nèi)存 第3章 系統(tǒng)內(nèi)存優(yōu)化   3.1 守護(hù)進(jìn)程的內(nèi)存使用   3.2 tmpfs分區(qū)   3.3 Cache和Buffer   3.4 內(nèi)存回收   3.5 /proc/sys/vrn/優(yōu)化 第4章 內(nèi)存泄漏  4.1 是否有內(nèi)存泄漏  4.2 mtrace  4.3 malloc與free鉤子函數(shù)  4.4 棧的回溯  4.5 化整為零法  4.6 Dmalloc  4.7 Valgrtnd第二篇 軟件性能優(yōu)化 第5章 性能優(yōu)化的流程   5.1 性能評(píng)價(jià)   5.2 性能優(yōu)化的流程   5.3 性能的評(píng)測   5.4 性能分析 第6章 進(jìn)程啟動(dòng)速度   6.1 查看進(jìn)程的啟動(dòng)過程   6.2 減少加載動(dòng)態(tài)庫的數(shù)量   6.3 共享庫的搜索路徑   6.4 動(dòng)態(tài)庫的高度   6.5 動(dòng)態(tài)庫的初始化   6.6 動(dòng)態(tài)鏈接   6.7 提高進(jìn)程啟動(dòng)速度   6.8 進(jìn)程冷起與熱起的區(qū)別 第7章 性能優(yōu)化的方法  7.1 尋找程序熱點(diǎn)     7.1.1 gprof     7.1.2 OProfile  7.2 程序邏輯瓶頸  7.3 優(yōu)化的層次  7.4 何時(shí)開始性能優(yōu)化  7.5 如何推動(dòng)系統(tǒng)性能優(yōu)化  7.6 為什么軟件性能會(huì)低下  ……第8章 代碼優(yōu)化的境界第9章 系統(tǒng)性能優(yōu)化附錄 GCC常用編譯選項(xiàng)參考文獻(xiàn)

章節(jié)摘錄

  第2章進(jìn)程內(nèi)存優(yōu)化  有了dirtypage這個(gè)指標(biāo),筆者很快就拿出了一份在設(shè)備中各個(gè)進(jìn)程的dirtypage使用情況的報(bào)告,老板看了之后也很滿意。很快,老板又召集了一個(gè)會(huì)議,把所有組長都叫了過來,討論這份報(bào)告?! ‖F(xiàn)在對每個(gè)進(jìn)程使用了多少內(nèi)存很清楚了,接下來要朝第一個(gè)目標(biāo)前進(jìn):減少各個(gè)守護(hù)進(jìn)程所占用的內(nèi)存,使系統(tǒng)空閑內(nèi)存達(dá)到一個(gè)較高的水平。問題是誰對系統(tǒng)內(nèi)存減少負(fù)責(zé)?  讓某一個(gè)守護(hù)進(jìn)程來負(fù)責(zé),不太可能,畢竟系統(tǒng)的內(nèi)存使用所有的守護(hù)進(jìn)程都有份。那么每個(gè)進(jìn)程要減多少呢?老板很清楚,為了避免各個(gè)團(tuán)隊(duì)之間互相推諉,需要一個(gè)硬指標(biāo),每個(gè)團(tuán)隊(duì)也需要一個(gè)硬指標(biāo)??蛇@個(gè)指標(biāo)實(shí)在是難以確定,每個(gè)進(jìn)程的內(nèi)存使用根本就是一本糊涂賬,開發(fā)團(tuán)隊(duì)不清楚,老板就更不清楚了,每個(gè)進(jìn)程內(nèi)存使用到底能夠減多少,誰都不清楚??蓮那耙欢胃鱾€(gè)團(tuán)隊(duì)優(yōu)化內(nèi)存的情況來看,進(jìn)展緩慢,如果沒有一個(gè)指標(biāo),沒有壓力的話,這個(gè)事情就很難推動(dòng)。  最后敲定兩條標(biāo)準(zhǔn): ?。?)所有守護(hù)進(jìn)程所占內(nèi)存只能比發(fā)布的上一個(gè)版本所占的內(nèi)存少?! 。?)DirtyPage排在前10名的守護(hù)進(jìn)程,要努力去優(yōu)化,dirtypage總量要減少20%?! ∵@個(gè)結(jié)果,可以說幾家歡樂幾家愁啊,雖然有可能誤殺,但是命中率還是很高的。  下一步,就要開始真正的內(nèi)存優(yōu)化之旅了,程序員朋友有些等不及了吧。要想減少進(jìn)程的內(nèi)存使用,就要首先清楚有哪些因素對內(nèi)存使用產(chǎn)生影響。為此,筆者將分為3個(gè)部分對其進(jìn)行說明。

編輯推薦

  《嵌入式Linux內(nèi)存使用與性能優(yōu)化》特點(diǎn)為:讓程序占用內(nèi)存更少  讓系統(tǒng)啟動(dòng)速度更快  邏輯優(yōu)化與代碼優(yōu)化的辯證關(guān)系  系統(tǒng)性能優(yōu)化

圖書封面

圖書標(biāo)簽Tags

評(píng)論、評(píng)分、閱讀與下載


    嵌入式Linux 內(nèi)存使用與性能優(yōu)化 PDF格式下載


用戶評(píng)論 (總計(jì)10條)

 
 

  •   看這本書讓我想起經(jīng)典的《C的陷阱和缺陷》,兩這有異曲同工之妙,出發(fā)點(diǎn)著眼于一些日常程序?qū)W習(xí)中沒有注意但舉足輕重的知識(shí)點(diǎn),并且有很深入的分析,可以看出作者在編寫本書的過程中花費(fèi)了很多心血和時(shí)間,這個(gè)價(jià)格應(yīng)該是物超所值的。對在LINUX上使用C/C++編程遇到瓶頸的程序員有很大的幫助,不過書中存在不少的錯(cuò)誤,希望出版方及時(shí)糾正。
  •   好書,佩服作者對內(nèi)存的深入理解
  •   這本書講到很多很實(shí)用的內(nèi)容,不足之處是有些吊人胃口的內(nèi)容沒有介紹
  •   對于我的工作非常有幫助!
  •   沒什么太實(shí)質(zhì)的東西
  •   難得有人把這么龐雜的知識(shí)匯總在一起,而且講的頗有條理。任何做Linux相關(guān)工作的程序都該閱讀一下。必有收獲,必有大用。
  •   收獲很多,本來想給五星的

    感覺在內(nèi)存那一塊要是能再寫一點(diǎn)就更好了

    感謝作者分享經(jīng)驗(yàn)
  •   寫的還可以,增加點(diǎn)事后分析的課題就好了
  •   實(shí)驗(yàn)都替你做好寫在里面了,還要怎樣? 夠?qū)嵲诘摹?br /> 當(dāng)然,剛剛看到第二章就發(fā)現(xiàn)例程錯(cuò)誤,粗心了些,只能給4星了。 作者估計(jì)沒有自己校對。
  •   標(biāo)價(jià)30多,實(shí)際內(nèi)容量及價(jià)值大概能有3元吧~~~
 

250萬本中文圖書簡介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書網(wǎng) 手機(jī)版

京ICP備13047387號(hào)-7