2008-09-18 8 views
47

मैं हाल ही में हैमल के साथ खेल रहा हूं और वास्तव में परिणामस्वरूप कोड मुझे देखता है ... डेवलपर। मैं एक डिजाइनर के बारे में भी चिंतित नहीं हूं जो इसे उपभोग या बदलने में सक्षम है ... हम एक छोटी सी टीम हैं।क्या मुझे संभावित रूप से उच्च ट्रैफ़िक साइट के लिए हैमल या एआरबी या एरबिस का उपयोग करना चाहिए?

उसने कहा, एक परियोजना पर काम शुरू करना जो हमें विश्वास है कि काफी ट्रैफिक उत्पन्न होगा (कौन नहीं?)। मुझे चिंतित है कि ऐसी चीजें हैं जिन्हें मैं हमाल के बारे में नहीं जानता। क्या कुछ भी ऐसा कर सकता है जो हैम नहीं कर सकता? क्या प्रोजेक्ट बढ़ने के साथ हैमल का नकारात्मक प्रभाव पड़ता है? क्या ऐसी अन्य चीजें हैं जिन पर विचार किया जाना चाहिए?

और आखिरकार ... हैमल कैसे तेजी से erubis की तुलना करता है? मुझे लगता है कि यह माना जाता है कि यह अब erb और eruby धड़कता है ...

धन्यवाद!

+0

व्यक्तिगत रूप से, मैं scalability के बारे में चिंता है, जब यह एक मुद्दा बन जाता था। आखिरकार, दृश्य प्रतिपादन के मुकाबले डेटाबेस में अधिकतर समय लगता है। (कम से कम अब तक मैंने देखा है।) –

+3

फ्लिपसाइड पर, अगर आप केवल एक समस्या के बारे में चिंता करते हैं, तो आप क्या करते हैं यदि आप तय करते हैं कि आपकी templating भाषा बहुत धीमी है और आप उस भाषा में लिखे गए कई विचारों से फंस गए हैं? – casey

+0

गुड पॉइंट केसी - टेम्पलेट्स वेब एप का कन्वर्ट करने का सबसे कठिन हिस्सा हैं। – thethinman

उत्तर

1

मैं व्यक्तिगत रूप से प्रीकंपिल्ड टेम्पलेट्स में हमें एरुबिस की सलाह दूंगा।

विशेष रूप से यदि गतिशील templating की कोई आवश्यकता नहीं है। तब आपकी सबसे बड़ी मंदी उस गति से सीमित होगी जिस पर रूबी रूबी पार्स कर सकती है।

मैं शायद एक छोटा क्रॉन नौकरी स्थापित करता हूं जो कि बदले गए स्रोत टेम्पलेट्स और ऑटोकंपाइलों के लिए मॉनीटर करता है, जो कि उपयोग में नहीं होने पर आप बंद कर सकते हैं।

एक बार संकलित करें, कई का उपयोग करें।

ओह, और यदि आप गति के बारे में वास्तव में चिंतित हैं, तेनजिन एक नज़र लायक भी (एक ही रचनाकारों erubis के रूप में) हो सकता है

http://www.kuwata-lab.com/tenjin/rbtenjin-examples.html

+0

क्या आप जानते हैं कि टेंजिन का उपयोग करने के लिए रेल 3 कैसे बनाना है? – Green

4

मुझे लगता है कि यह पूरी तरह से व्यक्तिगत पसंद और रख-रखाव की बात है। मेरे लिए, हैमल टेम्पलेट को पढ़ने और समझने में आसान बनाता है, और प्रदर्शन बहुत स्वीकार्य है। अंत में, templating भाषा उस जगह होने की संभावना नहीं है जहां आपको अनुकूलित करने की आवश्यकता है - अधिकतर डेटाबेस क्वेरी, देखने या ऑब्जेक्ट कैशिंग इत्यादि।

हालांकि, ईआरबी टेम्पलेट्स के मामले में, आपको बेहतर प्रदर्शन मिलेगा यदि आप erubis का उपयोग करते हैं तो अनिवार्य रूप से मुफ्त में।

27

यदि आप रेल का उपयोग करते हैं, तो हैम और एरुबिस के बीच प्रदर्शन अंतर नगण्य है: किसी भी तरह के पहले टेम्पलेट के बाद टेम्पलेट संकलित और कैश किए जाते हैं। इसे टुकड़े और पेज कैशिंग के साथ संयोजित करें और आप आश्वस्त रह सकते हैं कि विचार आपके आवेदन की प्रदर्शन बाधा नहीं हैं।

प्रश्न आपको खुद से पूछना चाहिए: क्या आपको हैमल लिखना पसंद है? क्या यह आपको अधिक उत्पादक बनाता है? फिर आप आसान फैसला कर सकते हैं।

45

हमल चट्टानों। मैंने हाल ही में कोई प्रदर्शन संख्या नहीं देखी है लेकिन यह इन दिनों erb के करीब है। मुझे लगता है कि अगर आप बदसूरत मोड चालू करते हैं (जो सुंदर इंडेंटेशन को रोकता है) तो हम एआरबी से तेज हो सकते हैं। हम एक दिन में 2.8 मिलियन पेजव्यू देख रहे हैं। http://github.com/nex3/haml/tree/master/test

अद्यतन नवंबर 2009

नाथन (Haml के मुख्य डेवलपर) published some Haml 2.2 benchmarks अपने ब्लॉग पर:

एक benchmarker Haml स्रोत पेड़ में जाँच की है।तुम वहाँ लेकिन संक्षेप में सटीक संख्या देख सकते हैं:

  • सामान्य (सुंदर मुद्रण) मोड = 2.8 गुना ERB की तुलना में धीमी
  • बदसूरत मोड (कोई सुंदर टैब जोड़ा) = ERB
  • को

बराबर आप शुरुआती या पर्यावरण फ़ाइल में Haml::Template::options[:ugly] = true रखकर बदसूरत मोड सक्षम कर सकते हैं। ध्यान दें कि बदसूरत मोड वास्तव में बदसूरत नहीं है - परिणामी एचटीएमएल वास्तव में ईआरबी की तुलना में बहुत सुंदर है - यह सिर्फ अच्छी तरह से इंडेंट नहीं है।

+1

आपकी संख्या और प्रदान किए गए बेंचमार्क काफी प्रभावशाली हैं। और बदसूरत मोड के बारे में जानना अच्छा लगता है :) – nXqd

+11

प्रारंभकर्ता में उत्पादन के लिए 'बदसूरत' मोड सेट करना आवश्यक नहीं है क्योंकि HAML डिफ़ॉल्ट रूप से इस मोड को उत्पादन में सक्षम करता है। – Voldy

0

ठीक है, प्रत्येक रिलीज के साथ हैमल प्रदर्शन में सुधार जारी है। क्या यह वर्तमान समय पर एक स्वीकार्य जगह पर है? यह आपके लिए तय करना है (मैं "हां" कहने के इच्छुक हूं, लेकिन आपकी जरूरतों के आधार पर यह आपकी पसंद है)। यदि आप टेम्पलेट्स और उनके द्वारा प्रदान की जाने वाली पठनीयता पसंद करते हैं, तो प्रदर्शन ड्रॉप (हालांकि नगण्य) वास्तव में आपके निर्णय में अंतिम कारक होना चाहिए।

हैमल के संयोजन के साथ आपको उपयोग करने वाले अन्य उपकरणों में से एक है make_resourceful, हैमल (नाथन वीज़ेनबाम) के रखरखाव द्वारा एक और मणि है जो रेल ऐप में बहुत सारी चीजों को सरल बनाता है।

यदि आपके पास हैमल (और m_r) के बारे में और अधिक विशिष्ट प्रश्न हैं, तो मुझे यकीन है कि नाथन उन्हें उत्तर देने के लिए खुश होंगे। वह जाबर/एक्सएमपीपी और ईमेल के माध्यम से पहुंचा जा सकता है। उनकी संपर्क जानकारी here मिल सकती है।

2

यदि आपको पसंद है कि कोडिंग बिंदु से कैसे काम करता है, तो टेम्पलेट इंजन के प्रदर्शन के बारे में चिंता न करें। (हालांकि, जैसा कि आपने बताया है, अब यह तेज़ है।) यह निश्चित रूप से अन्य इंजनों को उत्पन्न कर सकता है।

आम तौर पर, आपके टेम्पलेटिंग इंजन के बारे में चिंता करने से आपकी ऊर्जा को कैशिंग स्थापित करने में अधिक लाभदायक होता है जहां आपको प्रदर्शन समस्याएं होती हैं।

11

मुझे HAML पसंद है क्योंकि यह आसानी से संरचित HTML लिखने के लिए एक अच्छा टूल है, और आम तौर पर इसका उपयोग करने में खुशी होती है। लेकिन साइट पर होने वाले ट्रैफ़िक की मात्रा के आधार पर टूल चुनने के साथ बहुत कम करना पड़ता है।

यदि आप यातायात के बारे में चिंतित हैं, तो आपको कैशिंग का सही तरीके से उपयोग करने की चिंता करनी चाहिए। और फिर आपको सामान्य वेब-एप्लिकेशन प्रदर्शन के सिद्धांतों को लागू करने की आवश्यकता है - नतीजा यह है कि आपके पास पेज लोड पर सुपर स्नैपी प्रतिक्रियाएं होंगी। एक उच्च ट्रैफिक वेबसाइट वास्तव में क्या जरूरत है।

प्रस्तुतियों पता चलता है कि वेबसाइट के प्रदर्शन में सुधार करने के लिए कैसे की एक जोड़े को यहां पाया जा सकता:

और सबसे अच्छी जगह है कि मैं करने के लिए के बारे में पता सीखें कि रेल कैशिंग का सही तरीके से उपयोग कैसे करें:

+0

मुझे नहीं पता कि यह जवाब क्यों कम किया गया है –

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