microbenchmark로 벤치마크하기
Rcpp의 주요 동기는 성능이므로, 코드 실행에 걸리는 시간을 정확히 측정할 수 있어야 합니다. 이를 위해 microbenchmark 패키지의 microbenchmark() 함수를 사용합니다.
microbenchmark()는 이름이 지정된 표현식을 인수로 받아, 각 표현식을 주어진 횟수(기본값은 100회)만큼 무작위 순서로 실행하고 요약 통계를 반환합니다. 이 강의에서는 median 열만 살펴보면 됩니다.
표준 정규분포에서 생성된 난수 100,000개로 이루어진 벡터 x가 작업 공간에 준비되어 있습니다.
이 연습은 강의의 일부입니다
Rcpp로 R 코드 최적화하기
연습 안내
microbenchmark패키지를 불러오세요.- R의
for루프를 사용해 벡터의 모든 원소 합을 계산하는 함수sum_loop()를 작성하세요. all.equal()함수를 사용해sum()함수와 같은 결과가 나오는지 확인하세요.microbenchmark()로 성능을 비교하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Load microbenchmark
___
# Define the function sum_loop
sum_loop <- function(x) {
result <- 0
___
result
}
# Check for equality
___(sum_loop(x), sum(x))
# Compare the performance
___(sum_loop = sum_loop(x), R_sum = sum(x))