बॉटलनेक कैसे ढूँढें?

कार्यकुशल R कोड लिखना

Colin Gillespie

Jumping Rivers & Newcastle University

कार्यकुशल R कोड लिखना

कोड प्रोफाइलिंग

सामान्य तरीका:

  • कोड चलाएँ
  • हर कुछ मिलीसेकंड में, अभी क्या चल रहा है, रिकॉर्ड करें
  • Rprof() R के साथ आता है और यही करता है
    • इस्तेमाल करना पेचीदा
  • इसके बजाय profvis का उपयोग करें
कार्यकुशल R कोड लिखना

IMDB डेटा सेट

  • ggplot2movies पैकेज से
data(movies, package = "ggplot2movies")
dim(movies)
58788    24
  • डेटा फ्रेम: लगभग 60,000 पंक्तियाँ और 24 कॉलम
  • हर पंक्ति एक खास फ़िल्म को दर्शाती है
कार्यकुशल R कोड लिखना

Braveheart

braveheart = movies[7288,]
Year Length Rating
1995 177 8.3

कार्यकुशल R कोड लिखना

उदाहरण: Braveheart

# Load data
data(movies,
     package = "ggplot2movies")
braveheart <- movies[7288,]
movies <- movies[movies$Action==1,]

plot(movies$year, movies$rating, xlab = "Year", ylab = "Rating")
# local regression line model <- loess(rating ~ year, data = movies) j <- order(movies$year) lines(movies$year[j], model$fitted[j], col = "forestgreen")
points(braveheart$year, braveheart$rating, pch = 21, bg = "steelblue")

कार्यकुशल R कोड लिखना

Profvis

  • RStudio में profvis के साथ प्रोफाइलिंग की बिल्ट-इन सपोर्ट है
    • जिस कोड को प्रोफाइल करना हो, उसे हाइलाइट करें
    • Profile -> Profile Selected lines

कार्यकुशल R कोड लिखना

कमांड लाइन

library("profvis")

profvis({
data(movies, package = "ggplot2movies") # Load data braveheart <- movies[7288,] movies <- movies[movies$Action == 1,] plot(movies$year, movies$rating, xlab = "Year", ylab="Rating") model <- loess(rating ~ year, data = movies) # loess regression line j <- order(movies$year) lines(movies$year[j], model$fitted[j], col="forestgreen", lwd=2) points(braveheart$year, braveheart$rating, pch = 21, bg = "steelblue", cex = 3)
})

आपके अनुसार कौन-सी लाइन सबसे धीमी होगी?

कार्यकुशल R कोड लिखना

कार्यकुशल R कोड लिखना

कार्यकुशल R कोड लिखना

अभ्यास करते हैं!

कार्यकुशल R कोड लिखना

Preparing Video For Download...