Trong trường đại học, tại các khóa học thuật toán của chúng tôi, chúng tôi học cách tính toán chính xác độ phức tạp của các thuật toán đơn giản khác nhau được sử dụng trong thực tế, chẳng hạn như bảng băm hoặc sắp xếp nhanh.
Nhưng bây giờ trong một dự án phần mềm lớn, khi chúng tôi muốn làm cho nó nhanh hơn, tất cả những gì chúng tôi làm là xem xét từng phần riêng lẻ - một vài vòng lặp lồng nhau có thể được thay thế bằng bảng băm nhanh hơn, một tìm kiếm chậm ở đây có thể được tăng tốc một kỹ thuật lạ mắt hơn - nhưng chúng tôi không bao giờ tính toán độ phức tạp của toàn bộ đường ống của chúng tôi.
Có cách nào để làm điều đó? Hay những người trong thực tế chỉ dựa vào "cục bộ" bằng thuật toán nhanh, để làm cho toàn bộ ứng dụng nhanh hơn, thay vì toàn cầu xem xét toàn bộ ứng dụng?
(Bởi vì dường như tôi không cần thiết phải chỉ ra rằng nếu bạn tích lũy được một số lượng lớn thuật toán được biết là rất nhanh, thì bạn cũng sẽ có một ứng dụng nhanh nói chung.)
Tôi đang hỏi điều này, bởi vì tôi được giao nhiệm vụ tăng tốc một dự án lớn mà người khác đã viết, trong đó rất nhiều thuật toán đang tương tác và làm việc với dữ liệu đầu vào, vì vậy tôi không rõ tác động của việc tạo ra thuật toán đơn lẻ nhanh hơn như thế nào toàn bộ ứng dụng.
n
tăng lên.