前 言
系統(tǒng)或者軟件性能的重要性自然是無須多言,永遠(yuǎn)沒有哪個用戶可以忍受打開一個網(wǎng)站或者軟件需要很久才能響應(yīng),性能是評估一個系統(tǒng)或者軟件最實在的指標(biāo),如果一個網(wǎng)站做得再好看、再漂亮,但是性能上不去,那也只是華而不實。
筆者在離開測試崗進入研發(fā)崗已經(jīng)有好幾個年頭了,按理說不應(yīng)該再去寫關(guān)于軟件測試方面的書,而應(yīng)該更多地去關(guān)注研發(fā)工作,但是筆者在研發(fā)崗位上奮斗了幾年后發(fā)現(xiàn),其實性能并不應(yīng)該是軟件測試工程師一個人的事情,而是一個涉及非常多IT崗位的共同工作,例如架構(gòu)師、技術(shù)經(jīng)理、研發(fā)工程師、網(wǎng)絡(luò)工程師、運維工程師等,他們都應(yīng)該去關(guān)注性能。為什么這么說呢?因為性能測試的工作不僅僅是為了完成一項性能測試任務(wù)來獲取系統(tǒng)或者軟件的性能指標(biāo),而更多的是要去發(fā)現(xiàn)性能問題、去分析診斷性能問題、去針對性能問題進行調(diào)優(yōu)。某個性能問題可能是由架構(gòu)設(shè)計缺陷引起的,也有可能是由網(wǎng)絡(luò)布線不足導(dǎo)致的,當(dāng)然也可能是由幾行代碼引發(fā)的,所以這是一個和很多IT崗位都相關(guān)的工作,是很多IT崗位都需要一起去重視的工作。正因為性能如此重要,所以筆者在轉(zhuǎn)崗后還是對性能念念不忘,從而也就有了這本書的問世,當(dāng)然筆者也希望借助本書能讓不同IT崗位的“同行”都能更多地去關(guān)注性能問題。
這是一本理論和實踐相結(jié)合的、同時面向研發(fā)和測試崗的關(guān)于性能分析診斷調(diào)優(yōu)實踐的圖書,比起其他的很多性能測試方面的圖書,本書的內(nèi)容更側(cè)重于介紹如何去發(fā)現(xiàn)性能問題、分析診斷性能問題以及對發(fā)現(xiàn)的性能問題進行調(diào)優(yōu)。書中的內(nèi)容涵蓋了性能測試基礎(chǔ)、Linux和Windows服務(wù)器的性能分析、Web和應(yīng)用中間件的性能分析、Java應(yīng)用程序的性能分析、MySQL數(shù)據(jù)庫的性能分析、安卓APP的性能分析以及具體的性能分析案例實踐。這本書主要是面向有一定性能測試基礎(chǔ)或者編程語言基礎(chǔ)的朋友,對于剛剛接觸性能測試的朋友來說可能會稍顯吃力,建議在閱讀本書的同時可以搭配參考其他的基礎(chǔ)書籍,這樣學(xué)習(xí)效果會更好,筆者相信讀完本書的朋友以后肯定不會再為“性能問題”而發(fā)愁。
特別感謝夏毓彥編輯一直對我的支持和鼓勵,正是有了清華大學(xué)出版社各位老師的幫助才有了這本關(guān)于性能測試分析、診斷調(diào)優(yōu)的書,也特別感謝蔣彪等眾多摯友在我最困難的時候給了我很多的幫助。由于作者水平和時間的限制,書中難免會存在一些錯誤和不足之處,還望見諒并幫忙指正,也懇請讀者提出寶貴的意見和建議。
作者于南京
2020年3月