Post

R 시간 재기: tic(), toc()

가끔 코드 돌리다 보면 라인별로 얼마나 걸리는지 알고 싶을때가 있는데.. 그때 사용하는 함수

tic() & toc()

Installation

1
2
install.packages("tictoc")
devtools::install_github("collectivemedia/tictoc") # 가장 최신버전

Usage

  • 간단하게 시간을 재고 싶은 코드 앞뒤로 tic(), toc() 붙이면 걸린 시간을 재준다.
1
2
3
4
5
tic() #또는 안에 제목을 넣으면 나중에 로그로 볼 수 있음
# tic("XX코드")
Sys.sleep(2)
toc()
## XX코드: 2.037 sec elapsed
  • tic/toc을 여러개 써서 중첩코드 시간계산도 가능하다. Last in First out로 나중에 쓴거 먼저 처리돼서 나옴. 중간에 걸리는 시간을 보고 싶으면 toc(log=TRUE)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 첫번째 시간체크 시작
tic("다 돌아가는데 걸린 시간") 

# 중간코드 1번 돌아가는데 걸린 시간 체크
tic("중간코드1")
Sys.sleep(2)
# end timer for the first subsection, log = TRUE tells toc to give us a message
toc(log = TRUE)
## 중간코드1: 2.037 sec elapsed

# 중간코드 2번 돌아가는데 걸린 시간 체크
tic("중간코드2")
Sys.sleep(2)
# end timer for second subsection
toc(log = TRUE)
## 중간코드2: 2.012 sec elapsed

#  전체 코드 다 돌아가는데 걸린 시간 체크
toc(log = TRUE)
## 다 돌아가는데 걸린 시간: 4.067 sec elapsed

한번에 모아서 보고 싶으면 tic.log(format = TRUE)

1
2
3
4
5
6
7
8
9
tic.log(format = TRUE)
## [[1]]
## [1] "중간코드1: 2.037 sec elapsed"
## 
## [[2]]
## [1] "중간코드2: 2.012 sec elapsed"
## 
## [[3]]
## [1] "다 돌아가는데 걸린 시간: 4.067 sec elapsed"

log reset하려면 tic.clearlog()

Reference

  • https://www.r-bloggers.com/2017/11/timing-in-r/
  • https://www.r-bloggers.com/2017/05/5-ways-to-measure-running-time-of-r-code/
  • https://didalsgur.tistory.com/entry/R-%EB%8F%99%EC%9E%91-%EC%8B%9C%EA%B0%84-running-time-%EA%B3%84%EC%82%B0-5%EA%B0%80%EC%A7%80-%EB%B0%A9%EB%B2%95
This post is licensed under CC BY 4.0 by the author.

© Subin Cho. Some rights reserved.

Using the Chirpy theme for Jekyll.