Kỹ thuật Tối ưu hóa Có ba loại kỹ thuật để tối ưu hóa mã trong C:
Tính-bound kỹ thuật kỹ thuật Memory-bound Input/Output-bound kỹ thuật
kỹ thuật Tính-bound liên quan đến máy tính thời gian thực hiện để thực hiện các toán tử và hàm. kỹ thuật tính toán-bound bao gồm:
Profiling nội tuyến Vòng unrolling Vòng gây nhiễu bất biến vòng tính toán Vòng đảo ngược Tail loại bỏ đệ quy Bảng tra cứu
Trong tính toán bộ nhớ bị ràng buộc, bạn cần phải đưa vào tài khoản bộ nhớ mà chương trình sử dụng. Việc sử dụng bộ nhớ từ các phần dưới của phân cấp bộ nhớ làm tăng thời gian thực hiện. Bạn cần sử dụng bộ nhớ từ cấp độ thích hợp trong khi chạy chương trình.kỹ thuật bộ nhớ-bound bao gồm:
Địa phương quy chiếu Row-chính giải quyết Padding giảm rò rỉ bộ nhớ
Trong Input/Output (I/O) ràng buộc tối ưu hóa, việc tiếp cận tuần tự và truy cập ngẫu nhiên phương pháp được sử dụng để giảm thời gian cần thiết để lấy thông tin.
I/O được lưu vào bộ đệm nhanh hơn I/O không được lọc. Bạn có thể sử dụng các hàm read() và write() với các bộ đệm lớn. Bạn có thể sử dụng mmap() để giảm thời gian cần thiết để truy xuất thông tin. Mmap() ánh xạ không gian địa chỉ của tiến trình với bộ nhớ hoặc tệp được chia sẻ.
một số kỹ thuật tối ưu hóa khác là:
Giảm thiểu việc sử dụng các biến toàn cầu trong chương trình.
Khai báo tất cả các chức năng khác với các biến chung dưới dạng tĩnh trong tệp.
Sử dụng các biến kích thước từ như int và float thay vì char, short và double.
Tránh sử dụng đệ quy.
Tránh sử dụng hàm sqrt() vì nó là CPU chuyên sâu.
Sử dụng mảng một chiều.
Không chia các chức năng liên quan chặt chẽ thành các tệp riêng biệt.
Sử dụng hàm puts() thay cho hàm printf.
Sử dụng truy cập tệp không định dạng/tệp nhị phân thay vì truy cập tệp được định dạng.
Sử dụng mallopt() nếu trình biên dịch hỗ trợ chức năng này để kiểm soát chức năng malloc.
Sử dụng macro thay vì các chức năng nhỏ để tiết kiệm thời gian CPU.
Bạn có thể thêm bất kỳ thông tin nào về miền sự cố bạn đang làm việc không? – mch