2011-11-14 81 views
5

首先,如果可以的話,我會切換到Linux,但由於第三方依賴關係,我不能。爲什麼Ruby在Windows服務器上的運行速度比在Windows開發機上慢得多?

我正在完成並在Windows 2008服務器上部署rails應用程序。在服務器上進行測試時,應用程序被證明速度很慢,請求每次需要2-5秒。在我的開發機器上,這遠沒有這麼慢,並且據我所知,緩慢在Rails本身,即。我在服務器上看到日誌記錄如Completed 200 OK in 1859ms (Views: 1687.5ms),而我的開發計算機上卻看到Completed 200 OK in 347ms (Views: 298.0ms)

我知道Rails的應該是慢在Windows上比它是在Linux上,但它爲什麼會慢一些在Windows服務器上比它在我的Windows 7開發機?

在開發中,我正在運行WEBrick,在Apache下運行的服務器上。我也嘗試在我的開發機器上運行瘦,如果有任何東西比WEBrick更快。有沒有人有什麼建議可能會導致如此大的放緩或看什麼?任何事情都將非常感激。

更新:看來,它是在服務器上顯着慢的Ruby本身。運行在IRB以下需要一秒鐘的0.6服務器上我的開發計算機上,但平均超過3秒:

n = Time.now ; x = 0 ; 10000000.times { x += 1 } ; puts Time.now - n 

什麼可以在服務器上造成的Ruby運行這麼慢得多(超過3次) ?它可能是Windows版本嗎?或者是其他東西? Ruby版本完全一樣:ruby 1.9.2p290 (2011-07-09) [i386-mingw32]。再次

更新:

覺得愚蠢沒有提及這個較早,但它是一個VPS。然而,儘管我願意接受這一點,但會讓它慢下來 - 比實際速度慢3倍以上?

+0

什麼是服務器負載樣? Ruby的CPU很重,如果已經有很重的負載,它會很慢。 – AboutRuby

+1

嘗試使用某些第三方軟件進行基準測試服務器與開發。即Phoronix。 – Slotos

回答

1
+0

謝謝,但這些鏈接似乎主要是關於Rails的*啓動*時間。如果你看看問題中的測試代碼,你可以看到我得到了一個3倍的減速,只是反覆在irb中分配一個變量 - 不加載Rails,不需要任何東西。我得出的結論是,VPS是完全廢話。 – Russell

+0

我不使用Rails。再看一下。 :-) –

+0

我看過他們!他們正在加快*加載*時間,特別是通過加速'require'。 'n = Time.now中沒有'require'; x = 0; 10000000×{x + = 1};放置Time.now - n'和irb已經加載,所以我沒有看到這些鏈接可能如何幫助。 – Russell

相關問題