Understanding Software Dynamics, 1st edition
BRAND: PEARSON
Publisher: | Addison-Wesley Professional |
Author: | Richard L Sites |
Edition: | (November 2, 2021) © 2022 |
eBook ISBN: | 9780137589784 |
Print ISBN: | 9780137589739 |
Type: | 1 Year Subscription. Dành cho Cá nhân |
eBook edition. 1 year Subscription. Dành cho Cá nhân | Trường ĐH, Nhóm, Thư Viện: Gọi 0915920514 để báo giá Pearson, Vital Source eBook hoặc mua Sách In
See what in the box
Mô tả sản phẩm
Chuyên gia về hiệu suất phần mềm nổi tiếng thế giới Richard Sites cung cấp các phương pháp chuyên môn và các công cụ tiên tiến để hiểu động lực phức tạp của phần mềm bị hạn chế về thời gian, cải thiện độ tin cậy của phần mềm và khắc phục các sự cố hiệu suất đầy thách thức. Anh ấy giải quyết vấn đề CPU, bộ nhớ, ổ đĩa, mạng, v.v., giúp học sinh sửa các chương trình luôn quá chậm hoặc đôi khi hoạt động tốt nhưng đôi khi lại chậm một cách khó hiểu.
Sites dựa trên kinh nghiệm hàng thập kỷ tiên phong trong việc tối ưu hóa hiệu suất phần mềm và kinh nghiệm sâu rộng trong việc giảng dạy cho các nhà phát triển ở cấp độ sau đại học. Ông giới thiệu các nguyên tắc và kỹ thuật có thể được sử dụng trong mọi môi trường, từ thiết bị nhúng đến trung tâm dữ liệu, làm sáng tỏ chúng bằng các ví dụ dựa trên bộ xử lý x86 hoặc ARM chạy Linux và được liên kết bằng Ethernet. Các trang web cũng hướng dẫn sinh viên xây dựng và áp dụng một công cụ phần mềm nguồn mở mới mạnh mẽ với chi phí cực thấp, KUtrace, để theo dõi chính xác những gì đang thực thi trên mọi lõi CPU. Bằng cách sử dụng những hiểu biết sâu sắc thu được từ công cụ này, sinh viên có thể áp dụng các phương pháp tiếp cận đa sắc thái để nâng cao hiệu suất—không chỉ đơn thuần là các kỹ thuật mạnh mẽ như tắt bộ nhớ đệm hoặc lõi.
"Trong Lời nói đầu, Sites đề cập rằng anh ấy đã nhận được nhiều gợi ý hữu ích khi giảng dạy các khóa học sau đại học sau khi nghỉ hưu ở Google… Tôi nghĩ rằng bất kỳ sinh viên CS cao cấp nào… đều có thể hưởng lợi khi đọc cuốn sách này. Trong khi tất cả tài liệu trong nửa đầu cuốn sách dẫn đến việc sử dụng KUTrace, hai phần đầu tiên đáng để đọc bởi bất kỳ ai muốn hiểu rõ hơn về hệ thống họ đang xây dựng và sử dụng."—Rick Farrow, ;đăng nhập
Foreword xix
Preface xxi
Acknowledgments xxv
About the Author xxvii
Part I: Measurement 1
Chapter 1: My Program Is Too Slow 3
Chapter 2: Measuring CPUs 15
Chapter 3: Measuring Memory 31
Chapter 4: CPU and Memory Interaction 49
Chapter 5: Measuring Disk/SSD 61
Chapter 6: Measuring Networks 85
Chapter 7: Disk and Network Database Interaction 111
Part II: Observation 131
Chapter 8: Logging 133
Chapter 9: Aggregate Measures 141
Chapter 10: Dashboards 157
Chapter 11: Other Existing Tools 167
Chapter 12: Traces 193
Chapter 13: Observation Tool Design Principles 209
Part III: Kernel-User Trace 217
Chapter 14: KUtrace: Goals, Design, Implementation 219
Chapter 15: KUtrace: Linux Kernel Patches 227
Chapter 16: KUtrace: Linux Loadable Module 239
Chapter 17: KUtrace: User-Mode Runtime Control 245
Chapter 18: KUtrace: Postprocessing 249
Chapter 19: KUtrace: Display of Software Dynamics 257
Part IV: Reasoning 267
Chapter 20: What to Look For 269
Chapter 21: Executing Too Much 271
Chapter 22: Executing Slowly 279
Chapter 23: Waiting for CPU 289
Chapter 24: Waiting for Memory 299
Chapter 25: Waiting for Disk 307
Chapter 26: Waiting for Network 319
Chapter 27: Waiting for Locks 337
Chapter 28: Waiting for Time 357
Chapter 29: Waiting for Queues 361
Chapter 30: Recap 383
Appendix A: Sample Servers 387
Appendix B: Trace Entries 391
Glossary 397
References 405
Index 415
Chuyên gia về hiệu suất phần mềm nổi tiếng thế giới Richard Sites cung cấp các phương pháp chuyên môn và các công cụ tiên tiến để hiểu động lực phức tạp của phần mềm bị hạn chế về thời gian, cải thiện độ tin cậy của phần mềm và khắc phục các sự cố hiệu suất đầy thách thức. Anh ấy giải quyết vấn đề CPU, bộ nhớ, ổ đĩa, mạng, v.v., giúp học sinh sửa các chương trình luôn quá chậm hoặc đôi khi hoạt động tốt nhưng đôi khi lại chậm một cách khó hiểu.
Sites dựa trên kinh nghiệm hàng thập kỷ tiên phong trong việc tối ưu hóa hiệu suất phần mềm và kinh nghiệm sâu rộng trong việc giảng dạy cho các nhà phát triển ở cấp độ sau đại học. Ông giới thiệu các nguyên tắc và kỹ thuật có thể được sử dụng trong mọi môi trường, từ thiết bị nhúng đến trung tâm dữ liệu, làm sáng tỏ chúng bằng các ví dụ dựa trên bộ xử lý x86 hoặc ARM chạy Linux và được liên kết bằng Ethernet. Các trang web cũng hướng dẫn sinh viên xây dựng và áp dụng một công cụ phần mềm nguồn mở mới mạnh mẽ với chi phí cực thấp, KUtrace, để theo dõi chính xác những gì đang thực thi trên mọi lõi CPU. Bằng cách sử dụng những hiểu biết sâu sắc thu được từ công cụ này, sinh viên có thể áp dụng các phương pháp tiếp cận đa sắc thái để nâng cao hiệu suất—không chỉ đơn thuần là các kỹ thuật mạnh mẽ như tắt bộ nhớ đệm hoặc lõi.
"Trong Lời nói đầu, Sites đề cập rằng anh ấy đã nhận được nhiều gợi ý hữu ích khi giảng dạy các khóa học sau đại học sau khi nghỉ hưu ở Google… Tôi nghĩ rằng bất kỳ sinh viên CS cao cấp nào… đều có thể hưởng lợi khi đọc cuốn sách này. Trong khi tất cả tài liệu trong nửa đầu cuốn sách dẫn đến việc sử dụng KUTrace, hai phần đầu tiên đáng để đọc bởi bất kỳ ai muốn hiểu rõ hơn về hệ thống họ đang xây dựng và sử dụng."—Rick Farrow, ;đăng nhập
Foreword xix
Preface xxi
Acknowledgments xxv
About the Author xxvii
Part I: Measurement 1
Chapter 1: My Program Is Too Slow 3
Chapter 2: Measuring CPUs 15
Chapter 3: Measuring Memory 31
Chapter 4: CPU and Memory Interaction 49
Chapter 5: Measuring Disk/SSD 61
Chapter 6: Measuring Networks 85
Chapter 7: Disk and Network Database Interaction 111
Part II: Observation 131
Chapter 8: Logging 133
Chapter 9: Aggregate Measures 141
Chapter 10: Dashboards 157
Chapter 11: Other Existing Tools 167
Chapter 12: Traces 193
Chapter 13: Observation Tool Design Principles 209
Part III: Kernel-User Trace 217
Chapter 14: KUtrace: Goals, Design, Implementation 219
Chapter 15: KUtrace: Linux Kernel Patches 227
Chapter 16: KUtrace: Linux Loadable Module 239
Chapter 17: KUtrace: User-Mode Runtime Control 245
Chapter 18: KUtrace: Postprocessing 249
Chapter 19: KUtrace: Display of Software Dynamics 257
Part IV: Reasoning 267
Chapter 20: What to Look For 269
Chapter 21: Executing Too Much 271
Chapter 22: Executing Slowly 279
Chapter 23: Waiting for CPU 289
Chapter 24: Waiting for Memory 299
Chapter 25: Waiting for Disk 307
Chapter 26: Waiting for Network 319
Chapter 27: Waiting for Locks 337
Chapter 28: Waiting for Time 357
Chapter 29: Waiting for Queues 361
Chapter 30: Recap 383
Appendix A: Sample Servers 387
Appendix B: Trace Entries 391
Glossary 397
References 405
Index 415