Nhiều ngôn ngữ máy tính khoa học tạo sự khác biệt giữa thời gian tuyệt đối (đồng hồ treo tường) và thời gian CPU (chu trình bộ xử lý). Ví dụ, trong Matlab ta có:Đo thời gian CPU đã trôi qua trong Julia
>> tic; pause(1); toc
Elapsed time is 1.009068 seconds.
>> start = cputime; pause(1); elapsed = cputime - start
elapsed =
0
và trong Mathematica ta có:
>>In[1]:= AbsoluteTiming[Pause[1]]
>>Out[1]= {1.0010572, Null}
>>In[2]:= Timing[Pause[1]]
>>Out[2]= {0., Null}
Sự khác biệt này rất hữu ích khi điểm chuẩn mã chạy trên các máy chủ tính toán, nơi có thể có sai cao trong thời gian tuyệt đối kết quả tùy thuộc vào những gì các quá trình khác đang chạy đồng thời.
Các Julia thư viện chuẩn cung cấp hỗ trợ cho thời gian của biểu thức thông qua tic()
, toc()
, @time
và một vài chức năng khác/macro tất cả dựa trên time_ns()
, một chức năng đo thời gian tuyệt đối.
>>julia> @time sleep(1)
elapsed time: 1.017056895 seconds (135788 bytes allocated)
Câu hỏi của tôi: Có cách nào đơn giản để có được thời gian CPU để đánh giá biểu thức ở Julia không?
(Side lưu ý:. Làm một số đào, dường như Julia thời gian được dựa trên uv_hrtime()
chức năng từ libuv Dường như với tôi rằng việc sử dụng uv_getrusage
từ cùng một thư viện có thể cung cấp một cách để truy cập vào thời gian CPU trôi qua trong Julia, nhưng Tôi không có chuyên gia nào cả.)
Đây là một gợi ý tuyệt vời. Vui lòng gửi một vấn đề hoặc gửi email danh sách gửi thư (hoặc gửi yêu cầu kéo nếu bạn nhận được một cái gì đó hoạt động!) –