सामान्य सिद्धांत: मेमोरी एलोकेशन

कार्यकुशल 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 कोड लिखना

बेंचमार्किंग

  • Method 1: 1:n
  • Method 2: प्री-एलोकेट
  • Method 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...