2012-01-15 14 views
5

मैं रेल 3.1 में संपत्ति पाइपलाइन के साथ अविश्वसनीय धीमी पृष्ठ लोडिंग समय देख रहा हूं। प्रत्येक संपत्ति (सीएसएस/जेएस/छवि) लोड करने के लिए आधे सेकेंड और एक सेकेंड के बीच ले रही है। यह वास्तव में विकास में बाधा शुरू कर रहा है। मुझे उत्पादन में एक ही समस्या नहीं है।रेल पाइपलाइन ने रेलवे 3.1 में स्थानीयहोस्ट को धीमा क्यों किया है

क्या कोई समाधान है? नीचे लॉग फ़ाइल दिखाता है कि कैसे अलग-अलग एसेट में 0.5 लोड कर रहा है - 0.3 एक दूसरे की:

# load of page itself... 
... 
Completed 200 OK in 1231ms (Views: 933.0ms | ActiveRecord: 15.6ms) 


Started GET "/assets/blueprint/screen.css?body=1" for 127.0.0.1 at 2012-01-15 15:53:00 +0000 
Served asset /blueprint/screen.css - 304 Not Modified (0ms) 


Started GET "/assets/application.css?body=1" for 127.0.0.1 at 2012-01-15 15:53:00 +0000 
Served asset /application.css - 304 Not Modified (0ms) 


Started GET "/assets/blueprint/print.css?body=1" for 127.0.0.1 at 2012-01-15 15:53:00 +0000 
Served asset /blueprint/print.css - 304 Not Modified (0ms) 


Started GET "/assets/universal/application.js?body=1" for 127.0.0.1 at 2012-01-15 15:53:01 +0000 
Served asset /universal/application.js - 304 Not Modified (2ms) 


Started GET "/assets/universal/animate-color.js?body=1" for 127.0.0.1 at 2012-01-15 15:53:01 +0000 
Served asset /universal/animate-color.js - 304 Not Modified (0ms) 


Started GET "/assets/universal/animate-shadow.js?body=1" for 127.0.0.1 at 2012-01-15 15:53:02 +0000 
Served asset /universal/animate-shadow.js - 304 Not Modified (0ms) 


Started GET "/assets/jquery_ujs.js?body=1" for 127.0.0.1 at 2012-01-15 15:53:02 +0000 
Served asset /jquery_ujs.js - 304 Not Modified (0ms) 


Started GET "/assets/universal/jquery.placehold.js?body=1" for 127.0.0.1 at 2012-01-15 15:53:02 +0000 
Served asset /universal/jquery.placehold.js - 304 Not Modified (0ms) 


Started GET "/assets/universal/autoresize.js?body=1" for 127.0.0.1 at 2012-01-15 15:53:03 +0000 
Served asset /universal/autoresize.js - 304 Not Modified (0ms) 


Started GET "/assets/universal/utilities.js?body=1" for 127.0.0.1 at 2012-01-15 15:53:03 +0000 
Served asset /universal/utilities.js - 304 Not Modified (0ms) 


Started GET "/assets/universal/validators.js?body=1" for 127.0.0.1 at 2012-01-15 15:53:03 +0000 
Served asset /universal/validators.js - 304 Not Modified (0ms) 


Started GET "/assets/jquery.js?body=1" for 127.0.0.1 at 2012-01-15 15:53:04 +0000 
Served asset /jquery.js - 304 Not Modified (0ms) 


Started GET "/assets/whitelabel/pingpanel/pingpanel.css?body=1" for 127.0.0.1 at 2012-01-15 15:53:04 +0000 
Served asset /whitelabel/pingpanel/pingpanel.css - 304 Not Modified (0ms) 


Started GET "/assets/logo.png" for 127.0.0.1 at 2012-01-15 15:53:05 +0000 
Served asset /logo.png - 304 Not Modified (0ms) 


Started GET "/assets/application_bar_background.png" for 127.0.0.1 at 2012-01-15 15:53:05 +0000 
Served asset /application_bar_background.png - 304 Not Modified (0ms) 


Started GET "/assets/linen-new.jpg" for 127.0.0.1 at 2012-01-15 15:53:06 +0000 
Served asset /linen-new.jpg - 304 Not Modified (0ms) 

मंदी के प्रभाव को और अधिक स्पष्ट रूप क्रोम नेटवर्क विश्लेषक के रूप में देखा जा सकता है:

enter image description here

उत्तर

3

जब भी कोई संपत्ति लोड हो जाती है, तो उसे रेल एनवी के माध्यम से पारित किया जाना चाहिए और रेल सभी कोड पुनः लोड कर देंगे। जब आपके पास बहुत सारी संपत्तियां होती हैं तो यह पृष्ठ लोड को धीमा कर देती है।

rails-dev-tweaks मणि का प्रयास करें जो रेल को फिर से लोड करने पर आपको अधिक नियंत्रण देता है। अपने मंदी के मुद्दों को ठीक करना चाहिए।

+1

'रेल-देव-ट्वीक्स' ने एक उत्कृष्ट काम किया, धन्यवाद। औसत पृष्ठ लोडिंग समय 9 से 2.6 के नीचे चला गया। –

4

आपको रेल-देव-ट्वीक्स के साथ सीमित सुधार मिल सकता है क्योंकि स्पॉकेट्स ऑटोलोडर का उपयोग नहीं करते हैं। स्प्राकेट्स को पारंपरिक मार्ग के रूप में रखा जाता है।

अपने development.rb फ़ाइल में जाओ और सेट:

config.assets.debug = false 

यह देव मोड बदल जाएगा कई के बजाय केवल एक फ़ाइल की सेवा के लिए है, और इस चीज़ें थोड़ी तेजी लाने चाहिए।

यदि आपको कुछ स्रोत डीबगिंग करने की आवश्यकता है तो डीबग = 1 को यूआरएल पैरा के रूप में जोड़ने से स्प्राकेट्स को केवल उस अनुरोध के लिए फ़ाइलों को विभाजित करने के लिए कहा जाएगा।

+1

'रेल-देव-ट्वीक्स' जोड़ने से पहले मैंने इसका प्रयोग किया और इसका बहुत बड़ा प्रभाव पड़ा। देव-ट्वीक्स का उपयोग करने के बाद भी मुझे पता चला कि संपत्तियों पर डीबगिंग सेटिंग को बदलने से लगभग कोई प्रभाव नहीं पड़ा - मुझे लगता है क्योंकि देव-ट्वीक्स वास्तव में यह सुनिश्चित कर रहे थे कि वे भी हिट नहीं हुए थे। –

संबंधित मुद्दे