Gói tictoc thực hiện chức năng này chính xác, vì vậy thời gian của timings tuần tự hoặc lồng nhau được lưu trữ trong một danh sách và để phân tích tiếp theo.
Ví dụ: với thời gian mỗi lần lặp của vòng lặp và phân tích kết quả sau, hãy sử dụng chức năng log
.
library(tictoc)
tic.clearlog()
for (x in 1:10) {
# passing x to tic() makes it a label at time of the matching toc() call.
tic(x)
Sys.sleep(1)
# When log = TRUE, toc() pushes the measured timing to a list
# quiet = TRUE prevents from printing the timing
toc(log = TRUE, quiet = TRUE)
}
Tìm nạp kết quả của toc()
dưới dạng văn bản được định dạng để in.
log.txt <- tic.log(format = TRUE)
Trích xuất danh sách chứa các số đo ở định dạng thô.
log.lst <- tic.log(format = FALSE)
Vì dữ liệu đã được trích xuất, hãy xóa nhật ký tictoc.
tic.clearlog()
Chuyển đổi các yếu tố danh sách thành thời gian. Mỗi phần tử trong danh sách có dấu thời gian bắt đầu (tic
) và kết thúc (toc
).
timings <- unlist(lapply(log.lst, function(x) x$toc - x$tic))
Tính toán thời gian vòng trung bình.
mean(timings)
# [1] 1.001
In đầu ra văn bản - lưu ý rằng tiền tố là giá trị x
.
writeLines(unlist(log.txt))
# 1: 1.002 sec elapsed
# 2: 1 sec elapsed
# 3: 1.002 sec elapsed
# 4: 1.001 sec elapsed
# 5: 1.001 sec elapsed
# 6: 1.001 sec elapsed
# 7: 1.001 sec elapsed
# 8: 1.001 sec elapsed
# 9: 1.001 sec elapsed
# 10: 1 sec elapsed
Nguồn
2017-12-23 16:22:19
Câu hỏi trùng lặp: http://stackoverflow.com/questions/1716012/stopwatch-function-in-r –
@VincentZoonekynd: Tôi đã hỏi cách lưu trữ. –
@StefanHansen: bạn lưu trữ nó giống như bạn lưu trữ bất kỳ giá trị biến khác ... '<-'. –