반응형
250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- bayesian
- Graph
- selenium
- 강화학습
- pytorch
- 알고리즘
- 백준
- 리눅스
- 불확실성
- PYTHON
- 베이지안
- 텍스트분석
- 파이썬
- Crawling
- uncertainty
- 빅데이터
- R
- pandas
- 텍스트마이닝
- 데이터분석
- 논문리뷰
- VAE
- GNN
- 크롤링
- AI
- 우분투
- 코딩테스트
- DATA
- YarinGal
- dropout
Archives
- Today
- Total
끄적거림
[R쓸신잡] benchmark 수행하기 본문
728x90
반응형
내가 만든 프로그램이 잘 작동하는지, 또한 성능과 퍼포먼스가 어느정도 나오는지 혹은 여러 비슷한 함수나 프로세스가 성능 측면에서 어떤 차이를 보이는지 확인해야할 경우가 종종 생긴다.
이럴 때 성능 측정하여 비교하고 더 나은 방법을 추구하는 것을 흔히 벤치마크(benchmark)라한다. 그래서 R이나 기타 다른 언어에서도 내가 어떤 함수 혹은 어떤 기능에 대해 퍼포먼스적으로 수행하고 싶다면 구글링할 때 how to ~~ benchmark 이런식으로 검색해주면 전세계 많은 R user들이 발견해 놓은 좋은 방법들을 많이 찾을 수 있다.
간단한 실험으로 벤치마크를 어떻게 사용하는지 확인해보고자 한다.
install.packages("microbenchmark")
library(microbenchmark)
먼저, microbenchmark 패키지를 설치해서 동일한 이름의 함수를 사용한다.
예제로써는 data.frame과 data.table의 성능 차이를 비교하고자 한다. 다음과 같은 매우 큰 데이터를 생성하고, 원하는 조건을 걸어 조건에 해당하는 데이터만 추출하고자 한다.
DF <- data.frame(x = runif(2.6e+07), y = rep(LETTERS, each = 10000))
df <- data.frame(x = runif(2.6e+07), y = rep(letters, each = 10000))
첫번째로 data.frame의 인덱싱을 이용하여 조건 추출을 해보자.
첫번째 인자로는 내가 검증하고 싶은 코드를 넣어주면 된다.
두번째 인자는 몇번 반복 실행할 것인지 정해주는 것이다.
microbenchmark(
x <- DF[DF$y == "B", ]
, times = 100
)
그 결과로는
위와 같이 출력이 되는데, 보이는 것처럼, 100번 수행 시간에 대한 요약통계량이 나온다.
단위는 밀리세컨 단위이다.
DT <- as.data.table(DF)
setkey(DT, y)
microbenchmark(
x <- DT[J("b"), ]
, times = 100
)
data.frame에 비해 숫자가 크게 나왔지만, 단위가 마이크로세컨 단위임을 주목하자.
728x90
반응형
'R쓸신잡' 카테고리의 다른 글
마크다운 노트 (0) | 2020.07.24 |
---|---|
[R쓸신잡] 문자열 원하는 포멧으로 출력(printf in C) (0) | 2020.07.07 |
[R쓸신잡] directory, path 설정 (0) | 2020.06.20 |
[R쓸신잡] multi package install, import(library), update in R (0) | 2020.06.19 |
[R쓸신잡]DB연결 in R 패키지(RJDBC, RODBC, ROracle) benchmark (0) | 2020.06.18 |
Comments