–
Tại sao phải tối ưu mã lệnh? Sự ra đời của các trình biên dịch hiện đại đã giúp lập trình viên cải thiện đáng kể thời gian và công sức phát triển phần mềm. Một vấn đề đáng quan tâm là xu hướng phát triển phần mềm theo hướng trực quan nhanh và tiện dụng dần làm mặt bằng kĩ năng viết mã lệnh của các lập trình viên giảm rõ rệt vì họ trông cậy hoàn toàn vào sự hỗ trợ của trình biên dịch. Khi phát triển một hệ thống phần mềm có tần suất xử lý cao, ví dụ các sản phẩm có chức năng điều phối hoạt động dây chuyền sản xuất trong nhà máy, thì bên cạnh sự hỗ trợ của một trình biên dịch mạnh còn cần đến kĩ năng tối ưu mã lệnh của lập trình viên. Kĩ năng tốt sẽ biến công việc lập trình khô khan, với các đoạn code tưởng chừng lạnh lùng trở nên sinh động. Một đoạn mã lệnh tốt sẽ tận dụng tối đa ưu điểm của ngôn ngữ và khả năng xử lý của hệ thống, từ đó giúp nâng cao đáng kể hiệu suất hoạt động của hệ thống.
Để chương trình hoạt động tối ưu, điều đầu tiên là tận dụng những hỗ trợ sẵn có của trình biên dịch thông qua các chỉ thị (directive) giúp tối ưu mã lệnh, tốc độ và kích thước chương trình. Hầu hết các trình biên dịch phổ biến hiện nay đều hỗ trợ tốt việc tối ưu mã khi biên dịch. Tuy nhiên, để đạt được hiệu quả tốt nhất, lập trình viên cần tập cho mình thói quen tối ưu mã lệnh ngay từ khi bắt tay viết những chương trình đầu tay. Bài viết này trình bày một số gợi ý rất cơ bản và kinh nghiệm thực tế tối ưu trong lập trình bằng ngôn ngữ C/C++.
– Tinh giản các biểu thức toán học: Các biểu thức toán học phức tạp khi được biên dịch có thể sinh ra nhiều mã dư thừa làm tăng kích thước và chậm tốc độ thực hiện của chương trình. Do đó khi viết các biểu thức phức tạp lập trình viên cần nhớ một số đặc điểm cơ bản sau để giúp tinh giản biểu thức:
+ CPU xử lý các phép tính cộng và trừ nhanh hơn các phép tính chia và nhân.
+ CPU xử lý tính toán với các số nguyên (integer) chậm hơn với số thực (float, double), và tốc độ xử lý float nhanh hơn double.
+ Trong một số trường hợp nhân hoặc chia số nguyên, sử dụng toán tử dời bit (bit shifting) sẽ nhanh hơn toán tử nhân chia.
Để chương trình hoạt động tối ưu, điều đầu tiên là tận dụng những hỗ trợ sẵn có của trình biên dịch thông qua các chỉ thị (directive) giúp tối ưu mã lệnh, tốc độ và kích thước chương trình. Hầu hết các trình biên dịch phổ biến hiện nay đều hỗ trợ tốt việc tối ưu mã khi biên dịch. Tuy nhiên, để đạt được hiệu quả tốt nhất, lập trình viên cần tập cho mình thói quen tối ưu mã lệnh ngay từ khi bắt tay viết những chương trình đầu tay. Bài viết này trình bày một số gợi ý rất cơ bản và kinh nghiệm thực tế tối ưu trong lập trình bằng ngôn ngữ C/C++.
– Tinh giản các biểu thức toán học: Các biểu thức toán học phức tạp khi được biên dịch có thể sinh ra nhiều mã dư thừa làm tăng kích thước và chậm tốc độ thực hiện của chương trình. Do đó khi viết các biểu thức phức tạp lập trình viên cần nhớ một số đặc điểm cơ bản sau để giúp tinh giản biểu thức:
+ CPU xử lý các phép tính cộng và trừ nhanh hơn các phép tính chia và nhân.
+ CPU xử lý tính toán với các số nguyên (integer) chậm hơn với số thực (float, double), và tốc độ xử lý float nhanh hơn double.
+ Trong một số trường hợp nhân hoặc chia số nguyên, sử dụng toán tử dời bit (bit shifting) sẽ nhanh hơn toán tử nhân chia.
Nguồn | : Internet |
Tác giả | : Nguyễn Văn Sơn |
Kiểu tập tin | |
Độ lớn tập tin | : 266KB |
Link mediafire- Bấm like để thấy link cũng như chia sẻ cho bạn bè mình
[like-gate] [/like-gate]