Làm thế nào để biết được câu lệnh nào chạy nhanh hơn?

Như tiêu đề thì em muốn hỏi là làm thế nào để biết được độ nhanh của mỗi câu lệnh hay thuật toán có sẵn trong C++?!
Em là beginner nên có gì sai sót trong việc dùng từ ngữ chuyên ngành thì rất mong mọi người chỉ bảo!
Em cảm ơn!

tạo 1 biến trước khi chạy function, gán nó bằng thời gian hiện tại, xong chạy hàm đó, lại gán 1 biến bằng thời gian hiện tại, lấy độ lệch của 2 biến thì ra thời gian chạy của function đó

3 Likes

Tốc độ câu lệnh hoặc thuật toán thì không thể xác định được vì còn tùy vào cấu hình máy tính. Chỉ có thể so sánh giữa 2 thuật toán thôi, ví dụ so sánh giữa code của bạn và của người khác xem đoạn nào chạy nhanh hơn.
Để so sánh thì bạn cho 2 thuật toán vào 2 hàm riêng, sau đó cho chạy khoảng 1000 lần (tùy thôi) rồi ghi lại thời gian để đem ra so sánh.
Để đo thời gian với độ chính xác cao thì bạn nên dùng Stopwatch nhé, tra google để biết cách sử dụng.

2 Likes

Dùng <ctime> xem sao. Nên dùng các bộ đếm chính xác cao (QPC: Win API hoặc <chrono> C++11)

2 Likes

Dùng QueryPerformanceCounter mình hay dùng cho game. Độ chính xác lên đến microsecond.

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?