2011-03-25 61 views
2

創建一個新的Rails 3.0.5項目使用Ruby 1.9.2,然後我用ab來測試它:爲什麼Rails以30ms和60ms交替渲染頁面?

ab -n 10 http://127.0.0.1:3000/ 

我發現視圖的完成時間爲30ms和60ms的之間交替的10結果。爲什麼Rails的行爲像這樣,而不是更一致的渲染時間?

Started GET "/" for 127.0.0.1 at 2011-03-25 06:40:26 -0700 
    Processing by ProductsController#index as 
Rendered products/index.html.haml within layouts/application (15.3ms) 
Completed 200 OK in 31ms (Views: 30.6ms | ActiveRecord: 0.0ms) 


Started GET "/" for 127.0.0.1 at 2011-03-25 06:40:26 -0700 
    Processing by ProductsController#index as 
Rendered products/index.html.haml within layouts/application (47.7ms) 
Completed 200 OK in 63ms (Views: 63.0ms | ActiveRecord: 0.0ms) 

    [ repeat for total 10 times ] 
+0

它是Mac OS X Snow Leopard – 2011-03-25 15:58:45

+0

你使用什麼網絡服務器?乘客?雜種?瘦?獨角獸? 第二個問題 - 您運行多少個Web服務器實例?只有一兩個或更多? 第三個問題,你使用緩存? 第四個問題 - 您是使用生產模式還是開發? – 2011-03-25 19:55:18

+0

它是最基本的Rails 3.0.5:WEBrick和開發模式。 (1 WEBrick的實例...你怎麼有2或3?) – 2011-03-26 16:22:50

回答

1

我在情緒上爲此付出了努力,但計算機是不可預測的和邪惡的。後臺進程,數據訪問和緩存都會影響您的渲染時間。此外,我不知道有多少客戶會在32毫秒內生氣。這還沒有足夠的時間來檢查bash.org

+1

不好意思你在這裏upvote。事實上,這個問題可能無法回答。有數百萬種事物會導致處理時間的變化。像凱爾說,我不會在這裏和那裏放32毫秒。如果它成爲一個問題,那麼你肯定可以重構和優化,但老實說,除非有32毫秒的問題,那麼我就不會讓自己負擔,試圖找出引起這段時間的數百萬變量中的哪一個可能導致波動 – 2011-03-25 14:11:05