Đầu tiên, đừng đổ mồ hôi những thứ nhỏ. Chi tiết như đếm ngược so với đếm ngược thường hoàn toàn không liên quan trong thời gian chạy. Con người nổi tiếng là xấu khi phát hiện các khu vực trong mã cần được tăng tốc. Sử dụng một hồ sơ. Trả ít hoặc không chú ý đến bất kỳ phần nào của vòng lặp không lặp lại, trừ khi trình lược tả nói khác đi. Hãy nhớ rằng những gì được viết trong một vòng lặp bên trong không nhất thiết phải được thực hiện trong một vòng lặp bên trong, vì các trình biên dịch hiện đại là khá thông minh về việc tránh sự lặp lại không cần thiết.
Điều đó đang được nói, rất thận trọng với việc bỏ vòng lặp trên các CPU hiện đại. Họ càng chặt chẽ, thì họ càng phù hợp với bộ nhớ cache. Trong một ứng dụng hiệu suất cao mà tôi đã làm việc vào năm ngoái, tôi đã cải thiện hiệu suất đáng kể bằng cách sử dụng các vòng thay vì mã thẳng, và thắt chặt chúng càng nhiều càng tốt. (Có, tôi đã lược tả, chức năng được đề cập chiếm 80% thời gian chạy.Tôi cũng đã chấm điểm lần so với đầu vào điển hình, vì vậy tôi biết những thay đổi này đã giúp.)
Hơn nữa, không có hại trong việc phát triển các thói quen có lợi cho mã hiệu quả. Trong C++, bạn nên có thói quen sử dụng pre-increment (++ i) thay vì post-increment (i ++) để tăng các biến vòng lặp. Nó thường không quan trọng, nhưng có thể tạo ra một sự khác biệt đáng kể, nó không làm cho mã ít đọc được hoặc có thể ghi, và sẽ không bị tổn thương.
Nguồn
2008-11-12 18:43:56
xem câu trả lời từ @monoxide. điều này không nên được gắn thẻ ngôn ngữ thuyết bất khả tri và tôi nghĩ bạn sẽ nhận được câu trả lời tốt hơn nếu mọi người biết ngôn ngữ/trình biên dịch nào họ đang cố gắng tối ưu hóa. –
đồng ý, tối ưu hóa là ngôn ngữ cụ thể, và cách bạn cụm từ câu hỏi có vẻ như bạn đang xuống để nhắm mục tiêu một nền tảng cụ thể (op lần khác nhau cho cpus khác nhau) – Oskar
được gắn thẻ cần làm rõ – Sklivvz