Tôi muốn ghi lại thời gian sử dụng trong thời gian thực. Hiện tại tôi đang thực hiện việc này:Làm thế nào để có được thời lượng đơn điệu trong python?
startTime = time.time()
someSQLOrSomething()
print "That took %.3f seconds" % (time.time() - startTime)
Nhưng điều đó sẽ không thành công (tạo kết quả không chính xác) nếu thời gian được điều chỉnh trong khi truy vấn SQL đang chạy.
Tôi không muốn chỉ chuẩn nó. Tôi muốn đăng nhập nó trong một ứng dụng trực tiếp để xem xu hướng trên một hệ thống trực tiếp.
Tôi muốn một cái gì đó như clock_gettime (CLOCK_MONOTONIC, ...), nhưng bằng Python. Và tốt nhất là không cần phải viết một mô-đun C gọi clock_gettime().
Vâng, tôi thật sự không biết làm thế nào thường nó thực sự được điều chỉnh. Tôi chạy NTP. Nhưng với một đồng hồ đơn điệu, tôi sẽ không phải chạy vào những thứ như lỗi Oracle RAC mà nó khởi động lại hệ thống nếu thời gian được thiết lập ngược. Bên cạnh các điều chỉnh NTP nhỏ, có những giây nhảy vọt có thể quay lại và tiến lên. – Thomas
S.Lott: không đúng. "Một bước nhảy vọt thứ hai là một điều chỉnh tích cực hoặc tiêu cực trong một giây [...]". Nó tầm thường để nhìn lên. Đây là câu đầu tiên trong bài viết "Leap second" trên Wikipedia. Vì vậy, khi một giây nhảy vọt được thêm vào, NTP sẽ điều chỉnh lại thời gian hệ thống của bạn ngược lại (bởi vì hệ thống của bạn nhanh. Nó không tính 23:59:60), có nghĩa là một phép đo dựa trên time.time() có thể âm. Tôi tin tưởng, nhiều máy chủ Oracle khởi động lại do lỗi mà tôi đã đề cập ở trên các newyears mới nhất. Và tôi chỉ sử dụng Oracle làm ví dụ trong đó một số chương trình không thể xử lý các điều chỉnh thời gian. – Thomas
Tôi không biết tại sao (chưa được vá) Oracle 10 thực hiện điều đó. Nó chỉ làm, và Oracle (công ty) xác nhận nó. – Thomas