Nói chung, giải pháp quan trọng nhất cho một vấn đề sẽ là giải pháp thực sự tồn tại và có giá trị cho các trường hợp khi chúng tồn tại cho vấn đề của bạn. Nói cách khác, tránh tối ưu hóa sớm cho đến khi bạn thực sự biết mình có mã không hiệu quả hoặc mã hiệu quả cần phải nhanh hơn.
Ngoài ra, đừng quên rằng giải pháp tốt nhất cho ứng dụng của bạn có thể không phải là giải pháp chung. Trường hợp và quan điểm, một vài năm trước, một giáo sư đã cho lớp chúng tôi một vấn đề trong đó chúng tôi đã in 10 số đầu tiên của một loại nhất định (xin lỗi, bộ nhớ của tôi làm tôi thất vọng về loại này, nhưng đó là một trong những số khác thường hơn các lớp) và chúng tôi đã được kiểm tra để kiểm tra để đảm bảo rằng số đó là loại đã cho. Đây là mức độ của vấn đề chúng tôi đã đưa ra và chúng tôi đã nói rằng đó là do ngày hôm sau với giải pháp hiệu quả nhất nhận được tín dụng đầy đủ. Bài giảng sau đây giáo sư đã tóm tắt kết quả:
- Một số sinh viên đã sử dụng một vòng lặp đơn giản và công thức được cung cấp để kiểm tra để đảm bảo các con số là chính xác và hiển thị chúng, chậm nhưng đã hoàn thành công việc, O (n ^ 3).
- Các sinh viên khác đã thực hiện nghiên cứu của họ và tìm thấy một công thức kiểm tra tốt hơn để đảm bảo rằng một số đã cho là hợp lệ, các chương trình này chạy nhanh hơn nhiều, O (n ^ 2).
- Một sinh viên đã sử dụng công thức chậm để tạo các giá trị và sau đó sao chép chúng thành một mảng không đổi trong mã của họ và hiển thị nội dung của nó, O (n).
Giải pháp cuối cùng được đánh giá là hiệu quả nhất bởi giáo sư. Hóa ra vấn đề thực sự là một bài tập trong việc hiểu đầy đủ vấn đề và không chỉ đi ra ngoài và tìm giải pháp hiệu quả nhất.
Vấn đề ở trên là khi tìm ra giải pháp hiệu quả, một vấn đề thường tốt hơn là dành thời gian để đảm bảo bạn thực sự hiểu vấn đề là gì trước khi tắt và viết mã, hoặc cố gắng tối ưu hóa mã. Nếu bạn có thể lưu trữ một tập hợp các giá trị tham chiếu trong một mảng không đổi thì tốt hơn bạn nên làm điều đó từ quan điểm hiệu suất hơn là cố gắng viết một số thuật toán ưa thích.
Tương tự, đừng quên rằng đối với hầu hết các ứng dụng, những người duy nhất có xu hướng nhìn thấy mã không hiệu quả (khi nó không cần thiết không hiệu quả!) Là chính các nhà phát triển. Nếu bạn viết mã sạch chỉ thực hiện chính xác những gì nó cần làm thì tỷ lệ cược là phần lớn thời gian người dùng sẽ không nhận thấy vấn đề về hiệu suất khi làm việc với chương trình của bạn và khi họ chỉ tối ưu hóa các phần mà họ đề cập đến bạn.