Skip to main content

Tối ưu hóa chương trình là gì?

Tối ưu hóa chương trình là quá trình sửa đổi chương trình máy tính theo cách khiến chương trình thực hiện nhanh hơn, tiêu thụ ít tài nguyên hơn hoặc thường hoạt động với mức hiệu quả cao hơn.Nhiệm vụ tối ưu hóa có thể được thực hiện tự động bởi một số trình biên dịch ngôn ngữ lập trình, cố ý sử dụng chương trình tối ưu hóa hoặc thủ công bởi các lập trình viên bước qua mã nguồn và cố gắng thực hiện các cải tiến cụ thể.Nói chung, tối ưu hóa chương trình được thực hiện với một kết thúc cụ thể trong tâm trí, bởi vì có rất ít tối ưu hóa chung có thể được thực hiện cho một chương trình không theo một cách nào đó làm giảm trạng thái tối ưu của phần khác của chương trình, có nghĩa là một chương trình thường có thểđược tối ưu hóa để sử dụng tốc độ hoặc tài nguyên, nhưng thường không phải cả hai.Một biến chứng có thể xảy ra với một số loại tối ưu hóa là nhiều ngôn ngữ lập trình cấp cao cung cấp mức độ trừu tượng lớn như vậy giữa mã gốc và ngôn ngữ máy tính mà tối ưu hóa có thể khó hoặc không thể thực hiện trên tất cả các nền tảng trong mọi tình huống, đặc biệt làCác ngôn ngữ được giải thích sử dụng tổng hợp trong thời gian (JIT).Một ví dụ về điều này là, khi một đoạn mã được tối ưu hóa để chạy nhanh hơn, tốc độ tăng có thể đến với giá của khả năng đọc mã, sử dụng bộ nhớ, tính linh hoạt của chương trình hoặc một số chi phí khác.Điều này có nghĩa là tối ưu hóa chương trình phải là một quá trình được nhắm mục tiêu, với mục đích thực hiện một khía cạnh của chương trình hoạt động theo cách tốt hơn trong khi sẵn sàng hy sinh hiệu quả của các khía cạnh khác.phát triển chương trình.Trong quá trình thiết kế, tối ưu hóa rộng có thể được thực hiện bằng cách đảm bảo một chương trình dường như chạy hiệu quả.Khi làm việc với mã nguồn thực tế, tối ưu hóa có thể bao gồm đảm bảo không có lệnh bên ngoài, các cuộc gọi lặp đi lặp lại hoặc các chức năng bằng văn bản kém.Khi biên dịch, nhiều tối ưu hóa được trình biên dịch tự động thực hiện và có thể được hướng dẫn thông qua việc sử dụng các công tắc trình biên dịch hoặc chỉ thị khác nhau của lập trình viên.Quá phức tạp để thực tế cho các lập trình viên của con người.Điều này có thể liên quan đến việc di chuyển các hướng dẫn trong một chương trình để chúng được thực hiện ngoài thứ tự được viết ban đầu nhưng theo cách hiệu quả hơn cho bộ xử lý.Nó cũng có thể liên quan đến việc thay đổi các tài nguyên có chủ ý như các khối bộ nhớ để chúng có thể được truy cập nhanh hơn.Hầu hết các tối ưu hóa chương trình xảy ra tự động ở cấp độ trình biên dịch.Sửa lỗi.Điều này có thể xảy ra khi tối ưu hóa bắt đầu khóa trong các hành vi chương trình đã không dễ dàng thay đổi hoặc thích nghi với mã mới mà không yêu cầu tất cả các tối ưu hóa phải hoàn tác.Một vấn đề lớn hơn là, trong nhiều trường hợp, một chương trình được tối ưu hóa trở nên ít có thể đọc được, bởi vì các thủ thuật và phím tắt được sử dụng thay vì chỉ các lệnh ngắn gọn và cấu trúc kiểm soát cổ điển.Vì những lý do này, thường có một mức độ tối ưu hóa chương trình mà tại đó có thể chấp nhận dừng lại, mặc dù các sửa đổi mã quyết liệt có thể làm cho một chương trình hoạt động hiệu quả hơn một chút.