일반 원칙: 메모리 할당

효율적인 R 코드 작성

Colin Gillespie

Jumping Rivers & Newcastle University

효율적인 R 코드 작성

C로 프로그래밍한다면...

메모리 할당은 개발자의 책임
// C code: request memory for a number
x = (double *) malloc(sizeof(double));

// Free the memory
free(x);
  • R에서는 메모리 할당이 자동으로 이루어집니다
  • R은 변수를 저장하기 위해 RAM에 메모리를 할당합니다
  • 속도를 위해 변수 할당을 최소화하십시오
효율적인 R 코드 작성

예시: 정수 수열

$$ 1, 2, \ldots, n $$

가장 명확하고 좋은 방법
## Method 1
x <- 1:n
나쁘지 않은 방법
## Method 2
x <- vector("numeric", n) # length n
for(i in 1:n)
    x[i] <- i
절대 사용하지 마십시오!
## Method 3
x <- NULL # Length zero
for(i in 1:n)
    x <- c(x, i)
효율적인 R 코드 작성

벤치마킹

  • 방법 1: 1:n
  • 방법 2: 사전 할당
  • 방법 3: 증가 방식
시간(초)
n 1 2 3
$10^5$ 0.00 0.02 0.2
$10^6$ 0.00 0.2 30
$10^7$ 0.00 2 3800

효율적인 R 코드 작성

R 클럽에 오신 것을 환영합니다!

R 클럽의 첫 번째 규칙: 절대로 벡터를 증가시키지 마십시오.

효율적인 R 코드 작성

연습해 봅시다!

효율적인 R 코드 작성

Preparing Video For Download...