- 軟件系統優化
- 郭健美 黃波 劉通宇 林曉東 趙鵬
- 1388字
- 2025-08-07 15:12:54
前言
起源
本書是根據郭健美、黃波從2021年秋天起在華東師范大學數據科學與工程學院開設的“軟件系統優化”課程的講義總結而成的,該課程主要面向高年級本科生和低年級研究生講授軟件系統的性能優化。
性能是衡量軟件系統質量和競爭力的一個重要方面,也是軟件系統設計、開發和應用過程中必須關注的一個基本屬性。如何在給定的硬件資源配置下提升軟件系統的性能,是數字化系統的設計和實現過程中必須思考和解決的問題,也是優化利用軟硬件資源的有效途徑。
每一位卓越的軟件系統工程師、架構師或研究人員都應掌握軟件系統優化的原理與技術。開設軟件系統優化方面的課程是解決我國計算機系統“卡脖子”問題所需人才的有效措施。我們力求在訓練相關人員解決實際問題的過程中圍繞“優化思維”培養“系統觀”和工程能力,鍛煉邏輯思維、批判性思維和創造性思維。
內容
本書包括18章,分為五個部分。第一部分包括第1章和第2章,作為緒論,先介紹一個性能優化案例,再概述軟件系統優化的方法論。第二部分包括第3~6章,主要介紹性能工程的基礎知識。第三部分包括第7~10章,介紹計算機體系結構優化的相關知識。第四部分包括第11~16章,介紹編譯優化的相關知識。第五部分包括第17章和第18章,主要針對新興場景下的系統優化技術進行專題討論。
本書適合高年級本科生、研究生或相關工程技術人員學習。在使用本書講授課程時,建議讀者先學習如下課程:計算機程序設計、數據結構、算法設計與分析、計算機系統。此外,如讀者能先修編譯原理、計算機組成與體系結構等課程,就能更好地理解和掌握本書內容。教師可根據課程要求、個人喜好、學生的背景和能力選講部分或全部章節。書中各章都給出了思考題,用于幫助讀者鞏固知識和引導讀者擴展知識面。
讀者可以從https://solelab.tech/sso獲得與本書相關的更多資料,包括本書樣例程序的源代碼,以及“軟件系統優化”課程的課件、上機作業、實踐項目等。
致謝
筆者在開設“軟件系統優化”課程之初,著重參考了以下兩門課程的教學設計和內容:麻省理工學院的MIT 6.172“Performance Engineering of Software Systems”、圣路易斯華盛頓大學的WUSTL CSE567M“Computer Systems Analysis”。這兩門課程對本書的內容組織產生了重要影響,在此向這兩門課程的授課教師Charles E. Leiserson、Julian Shun、Raj Jain等表示感謝。
本書由郭健美、黃波先根據授課講義和學生反饋確定本書的整體結構和各個章節的大綱,然后分工撰寫初稿,部分章節由Intel公司的林曉東、趙鵬編寫,華東師范大學系統優化實驗室的研究生劉通宇、梁文輝、李寧、廖浩宇參與了本書的編寫準備工作。具體分工如下:第1章由郭健美編寫,第2章由郭健美、黃波編寫,第3~8章由劉通宇、郭健美編寫,第9章和第17章由郭健美編寫,第10章由趙鵬編寫,第11~16章由黃波編寫,第18章由林曉東編寫。李寧、廖浩宇協助整理了部分文本、插圖和參考文獻。全書的編寫通過審閱修改、交叉評審、逐步迭代的方式完成。
本書的成稿離不開Intel公司相關專家的支持,林曉東、趙鵬分別作為華東師范大學的兼職教授、兼職副教授于2022年開始參與“軟件系統優化”課程的授課,并在工作之余編寫了相關章節。
感謝清華大學陳文光教授和上海交通大學陳海波教授在百忙中閱讀了本書初稿,提出了寶貴的修改意見,并幫忙作序。
感謝機械工業出版社的各位編輯,他們耐心細致的工作確保本書得以順利出版。
軟件系統優化涉及的知識內容廣泛,罕有人士對其眾多分支領域均有精深理解。由于筆者學識水平有限,書中難免存在錯謬,懇請讀者和同行批評指正,我們將不勝感激。
- Cocos2d Cross-Platform Game Development Cookbook(Second Edition)
- Functional Python Programming
- Android Development with Kotlin
- Mastering Spring MVC 4
- Web開發的貴族:ASP.NET 3.5+SQL Server 2008
- Learning Informatica PowerCenter 10.x(Second Edition)
- INSTANT Django 1.5 Application Development Starter
- SAP BusinessObjects Dashboards 4.1 Cookbook
- 利用Python進行數據分析(原書第3版)
- Getting Started with Gulp
- Linux:Embedded Development
- Java語言程序設計教程
- 分布式數據庫HBase案例教程
- Node.js應用開發
- Mastering Data Analysis with R