
Understanding Software Dynamics, 1st edition
BRAND: PEARSON
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
Tổng quan sách
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 xixPreface xxiAcknowledgments xxvAbout the Author xxviiPart 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 111Part 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 209Part 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 257Part 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 383Appendix A: Sample Servers 387Appendix B: Trace Entries 391Glossary 397References 405Index 415