2012-05-07 21 views
1

我是Rails 3的新手。
我想知道爲什麼我的頁面加載速度太慢。
我在開發模式(但在生產模式有理智圖片)Rails 3應用加速

有一個日誌:

Started GET "/inv/claims?locale=uk" for 127.0.0.1 at 2012-05-07 14:36:24 +0300 
    Processing by ClaimsController#index as HTML 
    Parameters: {"locale"=>"uk", "property"=>"inv"} 
Rendered shared/_apps_list.html.erb (0.0ms) 
Rendered shared/_apps_list.html.erb (0.0ms) 
Rendered shared/_apps_list.html.erb (15.6ms) 
Rendered shared/_apps_list.html.erb (0.0ms) 
Rendered shared/_apps_list.html.erb (0.0ms) 
Rendered shared/_apps_list.html.erb (0.0ms) 
Rendered shared/_apps_list.html.erb (15.6ms) 
Rendered shared/_apps_list.html.erb (0.0ms) 
Rendered shared/_apps_list.html.erb (0.0ms) 
Rendered shared/_apps_list.html.erb (0.0ms) 
Rendered shared/_apps_lists.html.erb (31.3ms) 
Rendered claims/index.html.erb within layouts/application (46.9ms) 
Completed 200 OK in 1594ms (Views: 46.9ms | ActiveRecord: 0.0ms) 

的總時間爲1594ms

第一個問題:它真的很慢嗎?

1594 - 46.9 = * * ms - 這是我的頁面花費某些邏輯(而不是渲染和查詢)的時間。

第二個問題:在這種情況下(1547ms)應用程序的邏輯不好嗎?

我儘量讓分頁
我的頁面邏輯:
我有一個文件夾結構:

/myfolder/1/application.xml (size of any application.xml about 5Kb) 
/myfolder/2/application.xml 
/myfolder/3/application.xml 
/myfolder/4/application.xml 
/myfolder/5/application.xml 
... 
/folder/50/application.xml 

我做...
1)我獲取有關每個文件夾的信息myfolder(myfolder/1 /,myfolder/2/...):文件夾創建或更改日期。我將這些信息存儲在Hash中。
2)排序創建日期或獲取關於步驟1)使用散列起始ID和步驟改變散列的
3)獲得切片。將它保存在新的哈希中。 4)通過哈希從步驟3.對於每個條目讀application.xml中迭代並解析它使用doc_hash = Hash.from_xml(引入nokogiri :: XML(F,&:noblanks)來散列.to_xml

+0

你有沒有嘗試過使用https://github.com/wavii/rails-dev-tweaks? – pduersteler

+0

pduersteler,不是因爲我在Rails 3.0.9下。主管,感謝您的建議。 –

回答

1
  1. 是的,這是第二個半來處理的頁面。這是太慢了。

  2. 看起來肯定會有一些奇怪的邏輯錯誤的地方。消費滿非ActiveRecord的,非視圖處理的第二個方法太長。

我會仔細看看你有的任何循環,並試圖瞭解在這個級別發生了什麼。

+0

我編輯了我的問題 –

+0

是的 - 這是一個很多的處理,這就是你所有的時間花在哪裏。所以如果你需要讓它變得更快,那就是我關注的焦點。由於文件不會經常更改,我建議您考慮某種緩存策略 - 可能基於redis或其他。如果您需要緩存建議,請發佈新問題。我會很感激你接受這個封閉的。謝謝,祝你好運! –

+0

非常感謝您的建議 –