का उपयोग करके प्रदर्शन सुधार प्राप्त नहीं कर सकते https://www.ruby-toolbox.com/categories/JSON_Parsers के अनुसार, मुझे ओज का उपयोग करके हैश को क्रमबद्ध करने के दौरान पागल गति प्राप्त करना चाहिए। मैंने नवीनतम मणि स्थापित किया है, इसे मेरे जेमफाइल में शामिल किया है, बंडल इंस्टॉल चलाएं, और यह पुष्टि कर सकता है कि इसका उपयोग हो रहा है। How can _know_ which JSON renderer is active in my Rails 3 app? हालांकि, JSON प्रतिक्रिया को प्रस्तुत करने में बिल्कुल कोई गति नहीं है।ओज JSON पार्सर
लाइब्रेरी में, मैं रूबी के mysql मॉड्यूल के साथ एक विरासत MySQL डेटाबेस से पूछता हूं। मैं तारों को मूल्यों में परिवर्तित करता हूं, और हैश की एक सरणी देता हूं। यह ठीक काम करता है, और इसमें लगभग 1.5 से 2 सेकंड लगते हैं। यह होना चाहिए, यहां डेटा का एक हिस्सा है जिसे पुनर्प्राप्त किया जा रहा है।
नियंत्रक
@data = Gina.points(params[:project], params[:test],
session[:username], session[:password])
respond_to do |format|
format.html { render :text => @data }
format.json { render :json => @data } # :text => MultiJson.engine
end
लाइब्रेरी
dbh = Mysql.real_connect(@@host, u, p)
res = dbh.query("SELECT * FROM #{d}.#{t}")
@data = []
res.each_hash do |row|
obj = {}
row.each_pair do |k, v|
v.match(/\A[+-]?\d+?(\.\d+)?\Z/) == nil ? obj[k] = v : obj[k] = v.to_f
end
@data << obj
end
मेरे समस्या 'प्रस्तुत करना: json' के साथ है हिस्सा। लगभग 1.5 एमबी डेटा के लिए, इसमें लगभग 8 या 9 सेकंड लग सकते हैं। बड़े डेटासेट्स (3.5 - 4 एमबी) पर, इसमें 25 या 30 लग सकते हैं। मैंने लाइफ में "कृत्रिम" विभाजक के साथ एक स्ट्रिंग को जाम करके जेएसओएन का उपयोग करके चारों ओर लिखा है, एक सादे का उपयोग करके jQuery में देखें। , और उसके बाद ब्राउज़र में जेएस में एक हैश में स्ट्रिंग को पार्स करना। मैं छोटे सेट पर 1.4 सेकंड तक और बड़े लोगों पर 5 सेकंड तक हूं।
जेएसओएन दृष्टिकोण स्वच्छ और समझने योग्य है, और इस बात के अनुरूप है कि चीजों को काम करने के लिए कैसे डिजाइन किया गया था। स्ट्रिंग-पार्सिंग दृष्टिकोण एक गंदे हैक है, और मुझे यह पसंद नहीं है, लेकिन यह छह गुना तेजी से है। दो दृष्टिकोणों की तुलना में मैंने जो आकर्षक चीज सीखी है वह यह है कि जेएसओएन को मेरी हैकी स्ट्रिंग को "क्रमबद्ध" करना पाठ के रूप में "प्रतिपादन" जितना तेज़ है (वास्तव में ऐसा करने के लिए कुछ भी नहीं है)। इस प्रक्रिया का गहन हिस्सा वास्तव में हैश क्रमबद्ध कर रहा है, लेकिन यह वही चीज है जो मैं अपेक्षा करता हूं कि "तेज" JSON लाइब्रेरी बेहतर करेगी।
क्या मैं मूल रूप से गलत समझ रहा हूं कि ओज मेरे लिए क्या कर रहा है, या क्या मैं कुछ गलत कर रहा हूं?