Viết lại mã nguồn bằng ngôn ngữ cấp thấp

Một phần của tài liệu TỐI ƯU HÓA XỬ LÝ CHƯƠNG TRÌNH potx (Trang 27 - 28)

5. TIN CHỈNH MÃ NGUỒN

5.10 Viết lại mã nguồn bằng ngôn ngữ cấp thấp

Các ngôn ngữ cấp thấp có khuynh hướng hiệu quả hơn dù sẽ tốn nhiều thời gian của lập trình viên hơn. Như vậy, việc viết lại các phần trọng yếu của một chương trình C++ hay Java trong C hay thay một script dạng thông dịch bằng

một chương trình viết bằng một ngôn ngữ ở dạng biên dịch có thể làm cho chương trình chạy nhanh hơn nhiều.

Đôi khi, ta có thể tăng tốc rất nhiều nếu dùng các mã lệnh phụ thuộc phần cứng. Đây là nhóm kỹ thuật tối ưu hóa tốc độ ở bước cuối cùng. Một khi đã sử dụng kỹ thuật này, chúng ta đã gắn kết chặt chẽ phiên bản cải tiến với một hệ thống phần mềm và phần mềm cụ thể, tức là giải pháp này sẽ làm mất đi tính linh hoạt và khả chuyển của chương trình, đồng thời làm cho việc bảo trì và sửa chữa chương trình trong tương lai trở nên khó khăn hơn nhiều. Hầu hết các thao tác được cài đặt bằng hợp ngữ là các hàm tương đối nhỏ được nhúng trong thư viện, chẳng hạn như hàm memsetmemmove, hay các thao tác đồ họa cơ sở...

Cách tiếp cận là viết mã lệnh bằng ngôn ngữ cấp thấp thật rõ ràng giống như khi sử dụng ngôn ngữ cấp cao, đồng thời phải bảo đảm tính đúng đắn của chương trình bằng cách kiểm nghiệm (xem thêm phần trình bày đối với hàm memset

trong Chương 6 - Kiểm chứng). Trước khi tiến hành xây dựng một phiên bản cải tiến phụ thuộc hệ thống, bạn cần có một phiên bản khả chuyển đúng đắn, tức là một phiên bản có thể thực hiện chính xác (dù xử lý không nhanh) trên các hệ thống khác nhau. Khi chuyển sang một môi trường mới, ta có thể bắt đầu xây dựng một phiên bản phụ thuộc môi trường mới, sau đó kiểm chứng tính đúng đắn của phiên bản cải tiến so với phiên bản khả chuyển đã có. Khi có sự khác biệt kết quả giữa hai phiên bản, hãy kiểm tra lại phiên bản cải tiến của bạn.

Một phần của tài liệu TỐI ƯU HÓA XỬ LÝ CHƯƠNG TRÌNH potx (Trang 27 - 28)