【推薦序】
1999年弯囊,Windows 98只有1800萬行代碼,運(yùn)行環(huán)境只需要16MB內(nèi)存儿奶、225MB硬盤。而目前最新的Windows 10有6000萬行代碼,需要8GB內(nèi)存词身、20GB硬盤才能流暢地運(yùn)行。
1990年番枚,低速的CAN總線才125kb/s法严,高速的500kb/s吞吐的CAN總線就能滿足整車通信需要,而且還有剩余葫笼。之后深啤,CA總線升級(jí)到2.0,最高也才8MB的吞吐路星。而今天100MB以上的以太網(wǎng)通信及其高速CA總線3.0已經(jīng)成為電動(dòng)汽車電子的標(biāo)配溯街。
所有軟件系統(tǒng)都在急劇復(fù)雜化,所有軟件的基礎(chǔ)運(yùn)行環(huán)境都在急劇膨脹洋丐。
在這種情況下呈昔,在復(fù)雜環(huán)境下進(jìn)行軟件可靠性測(cè)試,分析軟件缺陷垫挨,快速定位和解決軟件缺陷韩肝,是保持產(chǎn)品市場(chǎng)競(jìng)爭(zhēng)力的核心能力。尤其對(duì)正在數(shù)字化九榔、信息化轉(zhuǎn)型的傳統(tǒng)企業(yè)而言哀峻,他們既要保證支撐傳統(tǒng)業(yè)務(wù)的老系統(tǒng)的連續(xù)性,又要保證在疊床架屋的傳統(tǒng)IT架構(gòu)中更快更好更巧妙地進(jìn)行變革哲泊。這種變革往往牽一發(fā)而動(dòng)全身剩蟀,如何革而不毀,如何在保證質(zhì)量和業(yè)務(wù)連續(xù)性的前提下不斷迭代切威,軟件測(cè)試就是我們制勝的法寶育特。
百年福特,長盛不衰先朦,對(duì)產(chǎn)品質(zhì)量的重視是其中的秘訣之一缰冤。福特中國一貫把軟件質(zhì)量和穩(wěn)定性放在第一位,把發(fā)展自己的測(cè)試團(tuán)隊(duì)放在組織進(jìn)化的重要位置喳魏,本書作者張永清就是這樣一位福特中國軟件團(tuán)隊(duì)優(yōu)秀的軟件專家棉浸。
張永清的這本書,融合了研發(fā)和測(cè)試刺彩,融合了后端和前端迷郑,融合了應(yīng)用和數(shù)據(jù)庫枝恋,融合了性能定位的方法論和實(shí)踐,全面介紹了如何進(jìn)行性能分析定位調(diào)優(yōu)嗡害,如何讓軟件系統(tǒng)擁有更快的性能體驗(yàn)焚碌,這些是他在很多年測(cè)試、研發(fā)霸妹、架構(gòu)崗位上經(jīng)驗(yàn)積累的輸出十电。由于本書涉及的知識(shí)面很廣,因此本書的內(nèi)容不僅適合性能測(cè)試工程師抑堡,也適合應(yīng)用開發(fā)工程師摆出、系統(tǒng)分析工程師以及其他崗位的IT工程師。
本書最大的特點(diǎn)就是非常全面地剖析了性能調(diào)優(yōu)的技術(shù)和方法首妖,并且結(jié)合了大量真實(shí)的性能壓測(cè)案例偎漫,讓讀者能把學(xué)習(xí)到的理論知識(shí)運(yùn)用到實(shí)際的案例中去做實(shí)踐分析。通過實(shí)踐有缆,讀者不僅可以加深對(duì)理論的理解象踊,還可以積累到更多真實(shí)的調(diào)優(yōu)經(jīng)驗(yàn)。
我們希望本書能作為一個(gè)引子棚壁,一頭串起作者本人堅(jiān)實(shí)的軟件專業(yè)技能杯矩,另一頭給未來中國軟件工程和軟件測(cè)試技術(shù)繼續(xù)添磚加瓦,持續(xù)發(fā)光發(fā)熱袖外,通過技術(shù)服務(wù)于社會(huì)史隆、服務(wù)于大眾。
“書山有路勤為徑曼验,學(xué)海無涯苦作舟”泌射。真誠希望每一位接觸本書的讀者能夠認(rèn)真閱讀書中樸實(shí)無華的文字和案例,把書中的知識(shí)變成自己的積累鬓照,再通過實(shí)踐進(jìn)行輸出熔酷。相信本書一定能讓每位讀過此書的讀者走向更好的未來。
前 言
在經(jīng)歷了傳統(tǒng)互聯(lián)網(wǎng)時(shí)代和移動(dòng)互聯(lián)網(wǎng)時(shí)代之后豺裆,我們又迎來了大數(shù)據(jù)時(shí)代和人工智能(AI)時(shí)代拒秘。但是,不管哪個(gè)IT時(shí)代臭猜,軟件的性能始終是用戶體驗(yàn)的一個(gè)重要環(huán)節(jié)躺酒。如目前最火熱的AI應(yīng)用ChatGPT, 如果沒有一個(gè)很快的性能蔑歌,那么它在和人類對(duì)話時(shí)羹应,就會(huì)顯得很遲鈍,其性能和穩(wěn)定性直接決定了ChatGPT 能否從容地服務(wù)于全球17億以上的用戶訪問丐膝。
本書升級(jí)說明
隨著軟件技術(shù)的發(fā)展和更新?lián)Q代量愧,軟件系統(tǒng)越來越復(fù)雜,人工智能模型也越來越大帅矗,與之對(duì)應(yīng)的是性能要求越來越高偎肃,系統(tǒng)穩(wěn)定要求更加突出。正是在這樣的背景和需求下浑此,同時(shí)也在本書前一版《軟件性能測(cè)試累颂、分析與調(diào)優(yōu)實(shí)踐之路》大量讀者的反饋和建議下,迎來了這本書的第2版凛俱。
本書在第1版的基礎(chǔ)上紊馏,針對(duì)讀者的建議做了很多修改和補(bǔ)充,主要包括:
? 對(duì)第1章的性能調(diào)優(yōu)技術(shù)和思想進(jìn)行細(xì)化和補(bǔ)充完善蒲犬。
? 在第4章的應(yīng)用中間件的性能分析與調(diào)優(yōu)中補(bǔ)充了Spring Boot的性能調(diào)優(yōu)朱监。
? 在第6章的MySQL數(shù)據(jù)庫性能分析中增加了性能定位和調(diào)優(yōu)實(shí)踐。
? 在第7章的性能測(cè)試原叮、分析與調(diào)優(yōu)案例實(shí)踐中補(bǔ)充了更多的實(shí)踐案例和筆者多年的經(jīng)驗(yàn)總結(jié)赫编。
? 增加第9章前端性能分析。
? 升級(jí)本書中用到的相關(guān)軟件版本奋隶,以及對(duì)第1版中的部分錯(cuò)誤進(jìn)行修正和完善擂送。
本書適合的讀者
本書面向軟件研發(fā)和測(cè)試崗的讀者,理論和實(shí)踐相結(jié)合唯欣,詳細(xì)講解軟件性能分析嘹吨、診斷和調(diào)優(yōu)實(shí)踐。本書的內(nèi)容更側(cè)重于如何去發(fā)現(xiàn)性能問題境氢、分析診斷性能問題蟀拷,以及對(duì)發(fā)現(xiàn)的性能問題進(jìn)行調(diào)優(yōu)。升級(jí)之后的第2版更加貼近當(dāng)前軟件測(cè)試技術(shù)的更新?lián)Q代产还,筆者堅(jiān)信讀完本書的讀者匹厘,肯定不會(huì)再為“性能問題”而發(fā)愁。
鳴謝
學(xué)習(xí)和交流是一個(gè)持久的過程脐区,我們需要不斷地去適應(yīng)這個(gè)高速發(fā)展的技術(shù)時(shí)代愈诚,軟件技術(shù)永遠(yuǎn)在不斷地變革,軟件性能也會(huì)越來越快牛隅。從本書第1版的讀者反饋情況來看炕柔,讀者已經(jīng)建立對(duì)本書的長期信任,所以這本書未來也會(huì)順應(yīng)技術(shù)的發(fā)展持續(xù)更新下去媒佣。
感謝讀者對(duì)第1版的支持和建議匕累,正是因?yàn)橛辛舜蠹业闹С趾徒ㄗh,才有了這本書的第2版默伍。也感謝讀者指出了第1版中很多的不足之處欢嘿,才讓筆者有了更大的寫作動(dòng)力衰琐。
特別感謝清華大學(xué)出版社夏毓彥編輯一直對(duì)我的支持和鼓勵(lì),特別感謝蔣彪等眾多摯友在我最困難的時(shí)候給于很多的幫助炼蹦,特別感謝福特中國企業(yè)技術(shù)高級(jí)總監(jiān)黃紀(jì)南為本書寫推薦序羡宙,特別感謝部門領(lǐng)導(dǎo)周揚(yáng)對(duì)我的鼓勵(lì)。
由于筆者水平和時(shí)間的限制掐隐,書中難免會(huì)存在一些不足之處狗热,還請(qǐng)讀者指正,也懇請(qǐng)讀者提出更多寶貴的意見和建議虑省。
筆者匿刮,于南京
2024年1月