Setelah coba-coba ruby 1.9 (mri+yarv) yang masih dalam tahap
pengembangan, ternyata performanya memang jauh lebih cepat dari versi
1.8.6/7.
Saya melakukan benchmark code ruby yang menjalankan fibonacci
recursive, di platform win32. Hasilnya, bisa sampai 4x lebih cepat;
perbandingannya kurang-lebih seperti ini:
ruby 1.8.6 mswin32: 1x (acuan)
ruby 1.8.7 MinGW: 1x + 20%
ruby 1.9.1-preview: 4x
jruby (client): 3x
jruby (server): 4x

kode yang dipakai seperti ini:

require 'benchmark'

def fib_ruby(n)
  if n < 2
    n
  else
    fib_ruby(n - 2) + fib_ruby(n - 1)
  end
end

10.times { puts Benchmark.measure { fib_ruby(25) } }


Sayangnya, ruby 1.9-preview gagal menjalankan rails 2.2.2, bisa
dimaklumi (terutama yang berkaitan dengan
activesupport/core-ext/string atau multibyte/chars)

Benchmark lain menggunakan Apache Bench (ab.exe) untuk mengukur
performa applikasi rails.

Yang menarik adalah ruby 1.8.7 mingw yg lebih responsif untuk CLI
dibandingkan ruby yang dicompile menggunakan nmake. Jruby pada mode
server performanya memang sangat cepat, tetapi butuh waktu startup yg
lebih lama. Mungkin, jruby memang lebih cocok untuk production, dan
sanggup menangani concurrency yang tinggi (high-traffic).

Tips kalo mau menjalankan Mongrel, atau gem lainnya di versi mingw,
ubah sedikit di script2nya cari baris2 kode seperti ini: RUBY_PLATFORM
=~ /mswin/ menjadi RUBY_PLATFORM =~ /mswin|mingw/

Ok, mari kita tunggu versi 1.9 stable dirilis (atau mungkin langsung
ke versi 2.0).

Oh ya, apa ada yang tahu software buat benchmark (dan monitoring) yang
bisa dipakai buat mengukur secara lebih akurat mengenai memory usage,
log hasil benchmark, termasuk grafik/chart dari aplikasi2 yg dijalankan?

Reply via email to