MulaiMulai sekarang secara gratis

Benchmarking dengan microbenchmark

Karena motivasi utama Rcpp adalah kinerja, Anda perlu dapat mengukur secara akurat berapa lama kode Anda berjalan. Anda akan menggunakan fungsi microbenchmark() dari paket microbenchmark untuk tujuan ini.

microbenchmark() menerima ekspresi bernama sebagai argumen, mengeksekusi setiap ekspresi sejumlah kali (100 secara bawaan) dalam urutan acak, dan mengembalikan beberapa statistik ringkasan. Dalam kursus ini, kita hanya memperhatikan kolom median.

Sebuah vektor x yang terdiri dari 100.000 bilangan acak normal baku tersedia di workspace Anda.

Latihan ini adalah bagian dari kursus

Mengoptimalkan Kode R dengan Rcpp

Lihat Kursus

Petunjuk latihan

  • Muat paket microbenchmark.
  • Tulis fungsi sum_loop() yang menghitung jumlah seluruh elemen dalam sebuah vektor menggunakan loop for di R.
  • Verifikasi bahwa Anda mendapatkan hasil yang sama dengan fungsi sum() menggunakan fungsi all.equal().
  • Bandingkan kinerjanya dengan microbenchmark().

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

# 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))
Edit dan Jalankan Kode