Performance Analysis and Tuning on Modern CPUs: Squeeze the last bit of performance from your application (Paperback)

Dawson, Mark E., Lakshmanamurthy, Sridhar, Rotem, Nadav

  • 出版商: Independently Published
  • 出版日期: 2020-11-16
  • 售價: $1,290
  • 貴賓價: 9.5$1,226
  • 語言: 英文
  • 頁數: 238
  • 裝訂: Quality Paper - also called trade paper
  • ISBN: 9798575614234
  • ISBN-13: 9798575614234
  • 相關分類: 程式語言軟體工程
  • 相關翻譯: 現代 CPU 性能分析與優化 (簡中版)
  • 立即出貨 (庫存 < 3)

買這商品的人也買了...

商品描述

We live in an increasingly data-centric world, where we generate enormous amounts of data each day. The growth of information exchange fuels the need for both faster software and faster hardware. Unfortunately, modern CPUs are not enjoying big improvements in single-core performance as they used to in the past decades.

That's why performance tuning is becoming more important than it has been for the last 40 years. According to the popular paper "There's plenty of room at the top" by Leiserson et al., SW tuning will be one of the key drivers for performance gains in the near future. We, as SW developers, must start optimizing the code of our applications.

I started this book with a simple goal: educate software developers to better understand their applications' performance on modern hardware. I know how confusing this topic might be for a beginner or even for an experienced developer. I remember the days when I was starting with performance analysis. I was gazing at unfamiliar metrics trying to match the data that didn't match. And I was baffled. It took me years until it finally "clicked", and all pieces of the puzzle came together. At the time, the only good sources of information were software developer manuals, which are not what mainstream developers like to read. So I decided to write this book, which will hopefully make it easier for developers to learn performance analysis and tuning concepts.

This book is a guide for optimizing the performance of applications that run on modern CPUs. It combines the knowledge of many experts from different industries, including engineers from Google, Facebook, leading HFT, and game development firms.

The book is divided into 2 parts. The first part gives an introduction to performance analysis, including a brief overview of CPU microarchitecture, terminology, and metrics. It also explores different methods to analyze performance and HW monitoring features available on modern platforms. The second part shows how to discover optimization opportunities and what transformations can be done to improve the performance of a program. It provides a checklist of optimizations that can be applied to a user's application, such as loop optimizations, vectorization, function inlining, etc. It also discusses code transformations that help to eliminate issues on a CPU microarchitecture level, like cache misses, branch mispredictions, and others.

This book is indispensable for software developers that work with performance-critical applications and do low-level optimizations. It also will be useful for any developer who wants to understand the performance of their application better and know how it can be diagnosed and improved.

Readers are expected to have a minimal background in C/C++ programming languages to understand the book's examples. The author also expects familiarity with basic concepts of computer architecture and operating systems. The ability to read x86 assembly is desired but is not a strict requirement.

商品描述(中文翻譯)

我們生活在一個越來越以數據為中心的世界,每天都產生大量的數據。信息交流的增長推動了對更快軟件和更快硬件的需求。不幸的是,現代CPU的單核性能並沒有像過去幾十年那樣有很大的改進。

這就是為什麼性能調優比過去40年更加重要的原因。根據Leiserson等人的著名論文《頂部還有很多空間》,軟件調優將成為未來性能提升的關鍵驅動因素之一。作為軟件開發人員,我們必須開始優化應用程序的代碼。

我開始寫這本書的目標很簡單:教育軟件開發人員更好地理解他們應用程序在現代硬件上的性能。我知道對於初學者或者有經驗的開發人員來說,這個主題可能很混亂。我還記得我開始進行性能分析的那些日子。我凝視著陌生的指標,試圖將不匹配的數據匹配起來。我感到困惑。直到幾年後,一切終於“點擊”了,所有的拼圖都湊在了一起。當時,唯一的好資訊來源是軟件開發人員手冊,這不是主流開發人員喜歡閱讀的。所以我決定寫這本書,希望能讓開發人員更容易學習性能分析和調優的概念。

這本書是一本關於優化運行在現代CPU上的應用程序性能的指南。它結合了來自不同行業的許多專家的知識,包括來自Google、Facebook、領先的高頻交易和遊戲開發公司的工程師。

這本書分為兩部分。第一部分介紹了性能分析,包括對CPU微架構、術語和指標的簡要概述。它還探討了分析性能和現代平台上可用的硬件監測功能的不同方法。第二部分介紹了如何發現優化機會以及可以進行的轉換來提高程序的性能。它提供了一個優化檢查表,可以應用於用戶的應用程序,例如循環優化、向量化、函數內聯等。它還討論了在CPU微架構層面上幫助消除問題的代碼轉換,例如緩存未命中、分支預測失誤等。

這本書對於處理性能關鍵應用程序並進行低級優化的軟件開發人員來說是必不可少的。它也對於任何想更好地了解和改進其應用程序性能的開發人員有用。

讀者需要具備C/C++編程語言的最基本背景,以理解本書的示例。作者還期望讀者熟悉計算機架構和操作系統的基本概念。能夠閱讀x86組合語言是理想的,但不是必需的。