9/18/2006

[心得] Ruby 效能在 Linux 上面比 Windows 好

這裡有一位對岸網友提出的Ruby 跟 Python 比較,引發一陣討論。不過裡面的test case 主要是大量的字串操作比較消耗時間,Ruby 在這裡會輸主要原因是因為Ruby 的字串是 mutable,而 Python 字串是 immutable,其他的算法方面倒是沒輸多少。

不過這篇Performance裡面倒是提到一件很值得注意的事情
Ruby 在 Linux 上面跑得比 Windows 來得快,記憶體也比較省
至於這個推論,也有另外一個更誇張的證言
我在虚拟机里只给NetBSD 64M内存,居然比在1G内存的winxp上运行速度还快!
可見得 Ruby 的確是 Unix 的產物,如果要跑 Ruby on Rails 最好不要用到 Windows 比較好。

以下是實驗數據,不管是 Windows or Cygwin ,Ruby on Linux 都贏

TEST CASE 1 : 速度比較
Ruby1.8.4@Win32:0.641s
Ruby1.8.5@Cygwin:0.558s
Ruby-yarv@Cygwin:0.453s
Ruby1.8.5@Ubuntu: 0.434s
Ruby-yarv@Ubuntu: 0.373s

TEST CASE 2 : Memory比較
ruby1.8.4@win32: 5.63, 97M
ruby1.8.5@cygwin: 4.77s, 93M(3.84s, 95M)
ruby1.8.5@ubuntu: 3.78s, 91M (3.36s, 91M)

另外一個 TEST CASE
ruby1.8.4@win32: 7.3s, 5M
ruby1.8.5@cygwin: 6.45s, 5M(6.04s, 5M)
ruby1.8.5@ubuntu: 4.25s, 3.2M(4.11s, 3.2M)

PS.
Performance比較,一向是各說各話。尤其是硬體的比較(AMD 跟 Intel 效能比較更是烽火連天),不過 Ruby 的慢一向是有口皆碑 (笑)。所以跟 Python 比速度,好像也沒啥好比的 XD,反正我們是靠其他部份去贏人的。

沒有留言: