Danh mục

TỐI ƯU HÓA XỬ LÝ CHƯƠNG TRÌNH

Số trang: 46      Loại file: doc      Dung lượng: 4.00 KB      Lượt xem: 8      Lượt tải: 0    
tailieu_vip

Xem trước 5 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Vấn đề tối ưu hóa xử lý của chương trình được đặt ra từ rất lâu rồi.Trước đây, các nhà lập trình luôn cố gắng tối ưu hóa chương trình do các thếhệ máy tính bấy giờ có tốc độ xử lý còn chậm và giá thành cao. Ngày nay, máytính đã trở nên phổ biến và tốc độ xử lý ngày càng tăng nhanh, do đó nhu cầuđặt ra đối với bài toán tối ưu hóa tuyệt đối chương trình đã giảm đi rất nhiều.Vậy ta có còn cần quan tâm đến vấn đề hiệu năng xử lý...
Nội dung trích xuất từ tài liệu:
TỐI ƯU HÓA XỬ LÝ CHƯƠNG TRÌNH MỤC LỤCI. MỘT SỐ VẤN ĐỀ TỐI ƯU HOÁ XỬ LÝ CHƯƠNG TRÌNH............................2 1. ĐẶT VẤN ĐỀ .....................................................................................................2 2. HIỆN TƯỢNG NÚT CỔ CHAI.........................................................................4 3. KỸ THUẬT ĐO THỜI GIAN THỰC HIỆN VÀ LƯU LẠI QUÁ TRÌNH HOẠT ĐỘNG (Profiling).......................................................................................11 4. CÁC CHIẾN LƯỢC TỐI ƯU HOÁ THỜI GIAN..........................................17 5. TIN CHỈNH MÃ NGUỒN................................................................................ 22 6. TỐI ƯU HOÁ KHÔNG GIAN LƯU TRỮ......................................................28 7. ƯỚC LƯỢNG................................................................................................. 32II. NGUYÊN LÝ TRONG REFACTORING ...........................................................35 1. ĐỊNH NGHĨA REFACTORING ......................................................................35 2. TẠI SAO NÊN REFACTORING......................................................................37 3. KHI NÀO THỰC HIỆN REFACTORING.......................................................39 4. VẤN ĐỀ VỚI REFACTORING.......................................................................40 5. REFACTORING VÀ HIỆU NĂNG XỬ LÝ ...................................................41 6. REFACTORING HỖ TRỢ TRONG VISUAL STUDIO 2005.......................42MỘT SỐ VẤN ĐỀ TỐI ƯU HOÁ XỬ LÝ CHƯƠNG TRÌNH … I. MỘT SỐ VẤN ĐỀ TỐI ƯU HOÁ XỬ LÝ CHƯƠNG TRÌNH Bài viết này dựa trên nội dung chương 7 “ Hiệu năng xử lý chương trình”(Chapter 7 – Performance) trích trong sách “The Practice of Programming” củatác giả Brian W. Kernighan va Rob Pike [1999]. Trong chương này, các tác giảtrình bày một số vấn đề về tối ưu hóa xử lý chương trình, trong đó tập trungđi sâu phân tích các khía cạnh về tối ưu hóa thời gian xử lý, đồng thời trình bàymột số kỹ thuật về tối ưu hóa không gian lưu trữ. 1. ĐẶT VẤN ĐỀ Vấn đề tối ưu hóa xử lý của chương trình được đặt ra từ rất lâu rồi.Trước đây, các nhà lập trình luôn cố gắng tối ưu hóa chương trình do các thếhệ máy tính bấy giờ có tốc độ xử lý còn chậm và giá thành cao. Ngày nay, máytính đã trở nên phổ biến và tốc độ xử lý ngày càng tăng nhanh, do đó nhu cầuđặt ra đối với bài toán tối ưu hóa tuyệt đối chương trình đã giảm đi rất nhiều.Vậy ta có còn cần quan tâm đến vấn đề hiệu năng xử lý của chương trình nữahay không? Trên thực tế, bài toán tối ưu hóa hiệu năng xử lý của chương trình vẫn rấtcó ý nghĩa trong cuộc sống. Tuy nhiên, vấn đề này chỉ thật sự cần được đặcbiệt quan tâm khi bài toán cần được giải quyết thật sự có ý nghĩa quan trọng,trong khi chương trình hiện có để giải quyết bài toán này có tốc độ xử lý cònquá chậm so với yêu cầu thực tế, đồng thời ta có cơ sở để tối ưu hóa việc xửlý nhằm tăng tốc độ của chương trình mà vẫn đảm bảo tính đúng đắn, bềnvững và trong sáng của chương trình. Một chương trình có tốc độ nhanh nhưngđưa ra đáp số chưa chính xác không giúp tiết kiệm được thời gian! Do đó, nguyên lý đầu tiên của tối ưu hóa là phải cân nhắc có cần tối ưuhóa chương trình hay không. Phải chăng chương trình hiện có đã đủ tốt rồi,không cần hoặc không thể tối ưu hóa thêm được nữa? Giả sử ta đã biết đượccách mà một chương trình sẽ được sử dụng và môi trường thực hiện chươngtrình này, liệu việc tối ưu hóa nhằm tăng tốc độ xử lý chương trình có đem lạilợi ích gì hay không. Hầu hết những chương trình mà sinh viên viết trong quátrình học ở trường chỉ được sử dụng một vài lần, sau đó sẽ không sử dụng lạinữa, do đó, vấn đề tốc độ thường không được quan tâm. Vấn đề này thườngcũng không ảnh hưởng và không cần quan tâm đối với hầu hềt các chươngtrình cá nhân, chẳng hạn như các công cụ, khung kiểm tra, thử nghiệm... 2Nguyễn Thị Thanh Trúc – Mai Xuân HùngMỘT SỐ VẤN ĐỀ TỐI ƯU HOÁ XỬ LÝ CHƯƠNG TRÌNH …Ngược lại, đối với các chức năng xử lý chính của một sản phẩm thương mại,chẳng hạn như thư viện đồ họa của phần mềm, vấn đề tối ưu hóa tốc độ xửlý có ý nghĩa hết sức quan trọng và cần được giải quyết. Như vậy, khi nào thì ta nên thử tìm cách tăng tốc xử lý chương trình và làmcách nào để thực hiện được điều này? Kết quả cụ thể mà ta mong muốn khitiến hành việc tối ưu hóa là gì? Nội dung chương này sẽ trình bày các vấn đề về làm thế nào để chươngtrình chạy nhanh hơn (tối ưu hóa thời gian) hay sử dụng bộ nhớ tiết kiệm hơn(tối ưu hóa không gian lưu trữ). Tốc độ là vấn đề thường được quan tâmnhiều hơn nên ta sẽ đi sâu vào vấn đề này. Không gian lưu trữ (bộ nhớ chính,đĩa) thường ít được quan tâm hơn, nhưng cũng có ý nghĩa hết sức quan trọng,nên ta cũng sẽ tìm hiểu một số v ...

Tài liệu được xem nhiều: