Bài giảng Kỹ thuật lập trình – Chương 4: Kỹ thuật viết mã nguồn hiệu quả. Những nội dung chính được trình bày trong chương này gồm có: Các kỹ thuật viết mã nguồn hiệu quả, những nguyên tắc cơ bản trong việc tăng hiệu quả viết mã nguồn, tối ưu hóa mã nguồn C/C++. | Chương 4 om .c Kỹ thuật viết mã nguồn ng co hiệu quả an th o ng du u cu 3 24 2020 1 https tailieudientucntt Nội dung 1. Các kỹ thuật viết mã nguồn hiệu quả om 2. Những nguyên tắc cơ bản trong việc .c tăng hiệu quả viết mã nguồn ng co 3. Tối ưu hóa mã nguồn C C an th o ng du u cu 3 24 2020 2 https tailieudientucntt Chương trình hiệu quả Trước hết là giải thuật Hãy dùng giải thuật hay nhất có thể om Sau đó hãy nghĩ tới việc tăng tính hiệu quả của code .c Ví dụ Tính tổng của n số tự nhiên liên tiếp kể từ m ng co void main void main an long n m i sum long n m sum th cin Dùng chỉ thị chương trình dịch Một số compilers có vai trò rất lớn trong việc tối ưu chương trình om .c Chúng phân tích sâu mã nguồn và làm mọi điều machinely có thể ng co Ví dụ GNU g compiler trên Linux Cygwin cho chương trình viết bằng C an th g O5 o myprog ng Có thể cải thiện hiệu năng từ 10 đến 300 o du u cu 3 24 2020 4 https tailieudientucntt Nhưng. Bạn vẫn có thể thực hiện những cải tiến mà trình dịch không thể om Bạn phải loại bỏ tất cả những chỗ bất hợp lý trong .c code ng Làm cho chương trình hiệu quả nhất có thể co Có thể phải xem lại khi thấy chương trình chạy chậm an th Vậy cần tập trung vào đâu để cải tiến nhanh nhất tốt nhất ng o du u cu 3 24 2020 5 https tailieudientucntt Viết chương trình hiệu quả Xác định nguồn gây kém hiệu quả Dư thừa tính toán - redundant computation om Chủ yếu .c Trong các procedure ng Các vòng lặp Loops co an th o ng du u cu 3 24 2020 6 https tailieudientucntt Khởi tạo 1 lần dùng nhiều lần Before float f om double value sin .c ng co an After th ng double defaultValue sin o float f du double value defaultValue u cu 3 24 2020 7 https tailieudientucntt Hàm nội tuyến inline functions Điều gì xảy ra khi một hàm được gọi om CPU sẽ lưu địa chỉ bộ nhớ của dòng lệnh hiện tại mà nó đang thực