出版時(shí)間:2009-5 出版社:機(jī)械工業(yè)出版社 作者:史子旺,葉超群,蔡建宇 編著 頁(yè)數(shù):316 字?jǐn)?shù):502000
Tag標(biāo)簽:無(wú)
前言
隨著信息科學(xué)與技術(shù)的迅速發(fā)展,人類每時(shí)每刻都會(huì)面對(duì)層出不窮的新技術(shù)和新概念。毫無(wú)疑問(wèn),在節(jié)奏越來(lái)越快的工作和生活中,人們需要通過(guò)閱讀和學(xué)習(xí)大量信息豐富、具備實(shí)踐指導(dǎo)意義的圖書(shū)來(lái)獲取新知識(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)域信息化所帶來(lái)的新理念和新方法?! ♂槍?duì)人們了解和掌握新知識(shí)、新技能的熱切期待,以及由此促成的人們對(duì)語(yǔ)言簡(jiǎn)潔、內(nèi)容充實(shí)、融合實(shí)踐經(jīng)驗(yàn)的圖書(shū)迫切需要的現(xiàn)狀,機(jī)械工業(yè)出版社適時(shí)推出了“信息科學(xué)與技術(shù)叢書(shū)”。這套叢書(shū)涉及計(jì)算機(jī)軟件、硬件、網(wǎng)絡(luò)和工程應(yīng)用等內(nèi)容,注重理論與實(shí)踐的結(jié)合,內(nèi)容實(shí)用、層次分明、語(yǔ)言流暢。是信息科學(xué)與技術(shù)領(lǐng)域?qū)I(yè)人員不可或缺的參考書(shū)。
內(nèi)容概要
本書(shū)主要講述嵌入式系統(tǒng)開(kāi)發(fā)中的兩個(gè)難點(diǎn):系統(tǒng)的內(nèi)存使用與系統(tǒng)性能優(yōu)化。 關(guān)于系統(tǒng)的內(nèi)存使用,本書(shū)試圖完成兩項(xiàng)任務(wù):①增加系統(tǒng)整體的空閑內(nèi)存數(shù)量,從而提高進(jìn)程的并發(fā)能力;②使系統(tǒng)在長(zhǎng)時(shí)間運(yùn)行后,仍然能夠保持較高數(shù)量的空閑內(nèi)存。本書(shū)所講述的內(nèi)存使用,不是Linux內(nèi)核的內(nèi)存管理,而是在用戶層觀察進(jìn)程是如何使用內(nèi)存的。 關(guān)于系統(tǒng)性能優(yōu)化,本書(shū)不同于同類書(shū)側(cè)重編程語(yǔ)法或者發(fā)揮硬件性能的做法,而是著眼于大型軟件項(xiàng)目性能優(yōu)化實(shí)踐,闡明了邏輯優(yōu)化與代碼優(yōu)化的辯證關(guān)系,提出了軟件優(yōu)化層次的概念。針對(duì)代碼優(yōu)化,闡述了代碼優(yōu)化的境界,為代碼優(yōu)化指明了研究方向。對(duì)于編程過(guò)程中的一些常用元素,通過(guò)查看匯編代碼的方式,闡述了其性能上的差別。 本書(shū)適合嵌入式系統(tǒng)開(kāi)發(fā)人員閱讀,也可供有一定經(jīng)驗(yàn)的C/C++程序員和Linux程序員參考。
書(shū)籍目錄
出版說(shuō)明前言第一篇 內(nèi)存使用 第1章 內(nèi)存的測(cè)量 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)庫(kù) 2.2.1 數(shù)據(jù)段 2.2.2 代碼段 2.2.3 動(dòng)態(tài)庫(kù)的優(yōu)化 2.3 靜態(tài)庫(kù) 2.4 線程 2.4.1 設(shè)置進(jìn)程??臻g 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)測(cè) 5.4 性能分析 第6章 進(jìn)程啟動(dòng)速度 6.1 查看進(jìn)程的啟動(dòng)過(guò)程 6.2 減少加載動(dòng)態(tài)庫(kù)的數(shù)量 6.3 共享庫(kù)的搜索路徑 6.4 動(dòng)態(tài)庫(kù)的高度 6.5 動(dòng)態(tài)庫(kù)的初始化 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í)開(kāi)始性能優(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ì)議,把所有組長(zhǎng)都叫了過(guò)來(lái),討論這份報(bào)告?! ‖F(xiàn)在對(duì)每個(gè)進(jìn)程使用了多少內(nèi)存很清楚了,接下來(lái)要朝第一個(gè)目標(biāo)前進(jìn):減少各個(gè)守護(hù)進(jìn)程所占用的內(nèi)存,使系統(tǒng)空閑內(nèi)存達(dá)到一個(gè)較高的水平。問(wèn)題是誰(shuí)對(duì)系統(tǒng)內(nèi)存減少負(fù)責(zé)? 讓某一個(gè)守護(hù)進(jìn)程來(lái)負(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)存使用根本就是一本糊涂賬,開(kāi)發(fā)團(tuán)隊(duì)不清楚,老板就更不清楚了,每個(gè)進(jìn)程內(nèi)存使用到底能夠減多少,誰(shuí)都不清楚??蓮那耙欢胃鱾€(gè)團(tuán)隊(duì)優(yōu)化內(nèi)存的情況來(lái)看,進(jìn)展緩慢,如果沒(méi)有一個(gè)指標(biāo),沒(méi)有壓力的話,這個(gè)事情就很難推動(dòng)?! ∽詈笄枚▋蓷l標(biāo)準(zhǔn): ?。?)所有守護(hù)進(jìn)程所占內(nèi)存只能比發(fā)布的上一個(gè)版本所占的內(nèi)存少。 (2)DirtyPage排在前10名的守護(hù)進(jìn)程,要努力去優(yōu)化,dirtypage總量要減少20%?! ∵@個(gè)結(jié)果,可以說(shuō)幾家歡樂(lè)幾家愁啊,雖然有可能誤殺,但是命中率還是很高的?! ∠乱徊剑鸵_(kāi)始真正的內(nèi)存優(yōu)化之旅了,程序員朋友有些等不及了吧。要想減少進(jìn)程的內(nèi)存使用,就要首先清楚有哪些因素對(duì)內(nèi)存使用產(chǎn)生影響。為此,筆者將分為3個(gè)部分對(duì)其進(jìn)行說(shuō)明。
編輯推薦
《嵌入式Linux內(nèi)存使用與性能優(yōu)化》特點(diǎn)為:讓程序占用內(nèi)存更少 讓系統(tǒng)啟動(dòng)速度更快 邏輯優(yōu)化與代碼優(yōu)化的辯證關(guān)系 系統(tǒng)性能優(yōu)化
圖書(shū)封面
圖書(shū)標(biāo)簽Tags
無(wú)
評(píng)論、評(píng)分、閱讀與下載
嵌入式Linux 內(nèi)存使用與性能優(yōu)化 PDF格式下載
250萬(wàn)本中文圖書(shū)簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書(shū)網(wǎng) 手機(jī)版