Nguyên lý và phương pháp lập trình<br />
<br />
Tối ưu hóa chương trình<br />
TS. Nguyễn Tuấn ðăng<br />
<br />
1<br />
<br />
Tối ưu hóa chương trình<br />
• Tổng quát<br />
• Khi nào cần tối ưu hóa?<br />
• Một số kỹ thuật tối ưu hóa chương trình<br />
–<br />
–<br />
–<br />
–<br />
–<br />
–<br />
–<br />
–<br />
<br />
Ví dụ minh họa<br />
Chương trình<br />
Các tối ưu hóa logic<br />
Sử dụng hợp lý các các biểu thức trung gian<br />
Tránh khai căn bậc 2<br />
Chuyển ñổi các cấu trúc dữ liệu<br />
Chuyển vị trí mã chương trình<br />
Thứ tự tính toán<br />
<br />
• Tổng kết<br />
2<br />
<br />
Tổng quan<br />
• Mục ñích của tối ưu hóa chương trình là nhằm<br />
giảm thiểu :<br />
– Thời gian<br />
• Thời gian chạy chương trình<br />
• Thời gian trả lời<br />
<br />
– Không gian<br />
• Không gian lưu trữ thứ cấp<br />
• Bộ nhớ chính<br />
<br />
• Các chiến lược tối ưu hóa<br />
– Tối ưu theo mục tiêu ñược ưu tiên<br />
– Cân ñối các mục tiêu:<br />
• Không gian và thời gian<br />
• ðộ phức tạp<br />
3<br />
<br />
Tổng quan (tt)<br />
• Khó khăn của vấn ñề tối ưu hóa chương trình :<br />
– Có nhiều chiến lược khác nhau<br />
<br />
• Phải quyết ñịnh :<br />
– Tối ưu hóa cái gì – không gian hay thời gian?<br />
– Tối ưu hóa ở ñâu trong chương trình?<br />
<br />
4<br />
<br />
Khi nào cần tối ưu hóa?<br />
• Khi chương trình không ñạt ñược hiệu quả hợp lý<br />
về không gian và thời gian<br />
• Khi có khả năng giảm thiểu ñộ phức tạp của<br />
chương trình<br />
<br />
5<br />
<br />