2010-08-27 12 views
9

मैं जीएई पढ़ने के प्रदर्शन को बेंचमार्क करना चाहता था। डेटा स्टोर से लगभग 10,000 इकाइयां लाई जा रही हैं। इन इकाइयों में 3 गुणों का नाम होता है (लगभग 16 वर्ण), वर्णन (लगभग 130 वर्ण) और एक समय-टिकट। असामान्य रूप से कुछ भी नहीं।क्या Google ऐप इंजन पर सीपीयू बैंडविड्थ बहुत महंगा है या यह मेरा कोड है?

औसत उस पर चारों ओर 11 सेकंड लेता है 10k संस्थाओं को पढ़ने के लिए:

यहाँ मैं क्या देखते हैं। यह सुनिश्चित नहीं है कि इसे तेजी से, धीमा या उचित माना जाता है, लेकिन यह परवाह किए बिना बहुत रोमांचक नहीं है।

अधिक दिलचस्प खोज सीपीयू मीटरींग है। इस पढ़ाई ऑपरेशन को निष्पादित करना 100 बार लगभग 3.0 CPU घंटे का उपभोग करता है। लागत $ 0.30 है।

यह देखते हुए कि कोई CPU गहन एल्गोरिदम यहां नहीं चल रहा है, क्या यह GAE की CPU बैंडविड्थ को काफी महंगा नहीं बनाता है? (यकीन है कि, यह पाइथन स्क्रिप्ट आदि आदि, लेकिन अभी भी के रूप में 24/7 सिस-व्यवस्थापक के साथ आता है ...)

या मेरी जावा कोड में यह कुछ है:

http://github.com/akirekadu/GAE-Evaluation/blob/master/show.jsp

+0

यह मेरे लिए अनुचित नहीं है, इंटरनेट पर प्रति सेकंड 1000 इकाई ऑब्जेक्ट्स ... इंटरनेट पर 3500 इकाइयों का चयन करने वाला एक त्वरित परीक्षण (आपके उदाहरण से थोड़ा अधिक डेटा वाला) प्रत्येक तीन सेकंड में लिया जाता है। क्या आपको कोई जानकारी है कि डेटा कितना स्थानांतरित किया जा रहा है? – darri

+0

@ दारी, "डेटा स्टोर" एक आंतरिक जीएई सुविधा –

+0

है (ए) जिस समय मैंने उल्लेख किया है * में * वेब राउंड-ट्रिप शामिल नहीं है। यह समय इकाइयों को पढ़ने के लिए लिया गया है (और एचटीएमएल कोड का निर्माण)। (बी) प्राप्त किया जा रहा डेटा लगभग 3 एमबी है। – akirekadu

उत्तर

5

यह आपका कोड नहीं, मैं आपका परिणाम मानता हूं। अपने प्रयोगों में, हमने पाया कि सीपीयू कोटा के संदर्भ में पुनर्प्राप्ति और (विशेष रूप से) भंडारण बहुत महंगा संचालन है।

हम ने कहा कि:

  • इंडेक्स महंगे हैं। यदि आप पढ़ने से ज्यादा लिख ​​रहे हैं, तो अपने इंडेक्स के साथ चिपचिपा रहें। सुनिश्चित करें कि आप मॉडल गुणों पर indexed=False विशेषता के बारे में जानते हैं, और index.yaml में स्वत: जेनरेट किए जाने पर ध्यान दें।

  • यदि आप लिखने से अधिक पढ़ रहे हैं, तो बहुत से बहु-अनुक्रमणिका समझ सकते हैं। जहां आप कर सकते हैं memcache का प्रयोग करें। अगर वे समझ में आते हैं, तो इकाई समूह का उपयोग करें।

  • ऐप इंजन एपीआई आपको ऐसे टूल देता है जो दक्षता में सुधार करते हैं। वे बहुत मायने रखते हैं। यदि आप 100 पंक्तियां लिख रहे हैं, तो एक एकल थोक डालकर() बनाम 100 व्यक्तिगत डाल() कॉल का उपयोग करके CPU उपयोग को बहुत कम कर दिया जाएगा।

अपने अनुप्रयोग अक्सर बड़े प्रदर्शन करने के लिए जा रहा है पढ़ता है के रूप में आप का वर्णन किया है, आप किसी अन्य समाधान का चयन करने की इच्छा हो सकती है (जैसे, Slicehost या linode की तरह एक VPS) या एक अलग डेटा मॉडल। प्रत्येक ऐप में अलग-अलग ज़रूरतें होंगी, डब्लूआरटी डिस्क, सीपीयू, मेमोरी इत्यादि, इसलिए मैं पाठक के लिए अभ्यास के रूप में बैक-ऑफ-द-लिफाफा गणना छोड़ देता हूं।

एचटीएच!

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