2009-03-29 8 views
38

लगता है दोनों तरह EnyimMemcached (https://github.com/enyim/EnyimMemcached) और BeITMemcached (http://code.google.com/p/beitmemcached/) लोकप्रिय नेट Memcached पुस्तकालय हैं। दोनों विकास के तहत उचित रूप से सक्रिय परियोजनाएं हैं और एक हजार से अधिक डाउनलोड हैं। यह जानने का प्रयास कर रहा है कि किस का उपयोग करना है लेकिन प्रतिस्पर्धात्मक टिप्पणियां मिलीं! मैंने एक और संबंधित post पढ़ा लेकिन अभी भी निर्णय लेने से पहले इस पर अधिक लोगों से पूछना है।कौन सा .NET Memcached क्लाइंट आप उपयोग करते हैं, EnyimMemcached बनाम BeITMemcached?

अपनी परियोजना मुखपृष्ठ (https://github.com/enyim/EnyimMemcached) पर दावों EnyimMemcached, कि

हमारे गैर खुलासा विशेष रूप से दस्तकारी घर में प्रदर्शन परीक्षण के आधार पर हम सबसे तेजी से सी # ग्राहक कभी कर रहे हैं, प्रणाली के नकारात्मक राशि का उपयोग संसाधनों, यह स्मृति या CPU समय हो

और

हम का पालन करें memcached के प्रोटोकॉल विनिर्देश के रूप में सख्ती से और कोई नहीं के रूप में: भी memcached लोग हमसे पूछते हैं कि अगर वे कुछ समझ में नहीं आता BeITMemcached

जबकि अपनी परियोजना विकि पृष्ठ (http://code.google.com/p/beitmemcached/wiki/Features) पर दावा है कि

हम बीआईटी मेमकैड क्लाइंट के व्यापक कार्यात्मक परीक्षण और प्रदर्शन परीक्षण का प्रदर्शन किया है और हम सतर्क हैं कि यह काम कर रहा है जैसा कि यह करना चाहिए। जब हमने दो अन्य ग्राहकों के खिलाफ प्रदर्शन की तुलना की, जावा पोर्ट और Enyim memcached client, हमारे ग्राहक ने कम से कम संसाधनों का उपभोग किया और उनका सर्वश्रेष्ठ प्रदर्शन था। यह memcached प्रोटोकॉल विनिर्देशों का अधिक कड़ाई से पालन कर रहा है, सबसे अधिक memcached सुविधाओं है, और अभी भी वास्तविक कोड आकार में बहुत छोटा है।

तो उन लोगों के लिए जिनके पास इन या कुछ भी समान अनुभव हैं, आपने किस क्लाइंट का उपयोग करना चुना है और संभवतः आपने जिस व्यक्ति को चुना है उसे चुना है?

धन्यवाद,

रे।

+0

Enym GitHub के लिए अब ले जाया गया है: http://github.com/enyim/EnyimMemcached –

उत्तर

19

हमने दोनों का परीक्षण किया और हमारे अपेक्षित उपयोग परिदृश्य के लिए सर्वश्रेष्ठ प्रदर्शन करने के लिए एनीम पाया: कई (लेकिन लाखों) कैश किए गए ऑब्जेक्ट्स, और लाखों कैश-अनुरोध अनुरोध (औसत वेब साइट समवर्ती लोड = 16-20 अनुरोध।)

हमारा प्रदर्शन कारक कॉलिंग सर्वर पर स्मृति में ऑब्जेक्ट प्रारंभ करने का अनुरोध करने से समय को माप रहा था। दोनों पुस्तकालयों ने नौकरी जारी रखी होगी, लेकिन हमारे परीक्षण में enyim क्लाइंट को प्राथमिकता दी गई थी।

3

मुझे एनीम को सर्वश्रेष्ठ काम करने के लिए मिला है। उपयोग करना आसान है, भरोसेमंद और तेज़ :)

4

एनआईआईएम क्लाइंट की दुकान() कभी-कभी सही ढंग से काम नहीं करता है। यह तब होता है जब कुंजी कैश में मौजूद नहीं होती है, अधिकांश मामलों के लिए memcached सेवा पुनरारंभ करने के बाद। यह निर्माण:

 T val = _client.Get<T>(key); 
     if (val == null) 
     { 
      // ... filling val variable ... 
      var result = _client.Store(StoreMode.Add, key, val); 
      // ... result can be false, sometimes ... 
     } 

50/50 काम करता है। टी इकाई [Serializable] है।

+0

आप बाहर काम किया है कि इस समस्या का कारण है या आप एक काम है है इसके लिए उछाल? –

+0

डिट्टो। क्या आप हमें बता सकते हैं कि समस्या क्या थी? मुझे लगता है कि यह [Serializeable] के साथ कुछ करने के लिए था, लेकिन मुझे इस पर आपके बारे में अधिक जानकारी सुनने में दिलचस्पी होगी :) –

+0

यह एक बहुत ही कम समस्या है। यदि आप एक समाप्ति समय समाप्ति/तिथि निर्दिष्ट करते हैं तो यह विशेष रूप से आम है। –

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