Mulai sekarangMulai 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 merupakan bagian dari kursus

Mengoptimalkan Kode R dengan Rcpp

Lihat Kursus

Instruksi 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 langsung praktik

Cobalah latihan ini dengan melengkapi kode contoh ini.

# 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