Google Sites
साइट पर काम कर रहा है, जो स्प्रेडशीट से डेटा लेता है और गतिशील रूप से कई चार्ट बनाता है, मैंने उल्लेख किया कि Google Apps स्क्रिप्ट काफी धीमी है। मैंने Cache सेवा का उपयोग कर कोड को प्रोफाइल किया और इसे अनुकूलित किया, जहां यह संभव है। अनुकूलन के बाद चार्टिंग कोड लगभग लेता है। 127 सेकेंड वाले 11 चार्ट बनाने के लिए 3 सेकेंड (275 9 एमएस सबसे तेज़ समय है, जिसे मैंने कभी देखा है)। और इस बार इस मामले के लिए है जब सभी डेटा कैश में रखा जाता है। पहला निष्पादन समय, जो स्प्रेडशीट से डेटा प्राप्त करता है और उन्हें कैश में रखता है, लगभग 10 सेकंड है। प्रोफाइल कोड को सरल स्थानों में पर्याप्त समय (मिलीसेकंड के दसियों) की आवश्यकता होती है। जीएएस प्रदर्शन को मापने के लिए, मैंने एक बहुत ही सरल प्रक्रिया लिखी और जीएएस पर्यावरण में इसे तैनात किया, जैसे कि वेब अनुप्रयोग तैनात किया गया, और Caja Playground में। इसके अलावा मैंने जीएएस इश्यू ट्रैकर को issue जमा किया।जीएएस प्रदर्शन अन्य सर्वर-साइड जावास्क्रिप्ट
Eric Koleda उचित mentioned, कि क्लाइंट पर चल रहे कोड के साथ सर्वर कोड की तुलना करना सही नहीं है। मैं बेंचमार्क कोड को फिर से लिखता हूं और यहां परिणाम हैं। विवरण और स्पष्टीकरण निम्नलिखित हैं।
Engine |List To Map|Adjust|Quick Sort|Sort|Complete| GAS | 138| 196| 155| 38| 570| rhino-1.6.5 | 67| 44| 31| 9| 346| spidermonkey-1.7| 40| 36| 11| 5| 104|
GAS
- एक पंक्ति विभिन्न कार्यों का निष्पादन समय युक्त गैस इंजन पर भाग गया। हर बार मिलीसेकंड में हैं। जीएएस निष्पादन समय काफी व्यापक सीमाओं में गिर जाता है। तालिका में सबसे तेज समय है जो मैंने 5-10 निष्पादन में किया था। सबसे खराबComplete
समय, जो मैंने देखा है, 1194 एमएस था। स्रोत कोड here है। परिणाम here हैं।rhino-1.6.5
औरspidermonkey-1.7
- पंक्तियों मेंGAS
के समान कार्यों के निष्पादन समय होते हैं लेकिन ideone.com का उपयोग करते हुए संवाददाता जावास्क्रिप्ट इंजन पर निष्पादित होते हैं। इन इंजनों के लिए कोड और समय here और here हैं।
बेंचमार्क कोड में कुछ फ़ंक्शन शामिल हैं।
List To Map [listToMap]
- एक फ़ंक्शन जो ऑब्जेक्ट्स की सूची को एक कंपाउंड कुंजी वाले मानचित्र में परिवर्तित करता है। यह साइट स्क्रिप्ट से लिया जाता है और लगभग लेता है। चार्टिंग कोड के 9.2% (275 एमएस के 256)।Adjust [adjustData_]
- एक फ़ंक्शन जो मैट्रिक्स में सभी दिनांक कॉलम को पूर्वनिर्धारित प्रारूप में किसी टेक्स्ट में परिवर्तित करता है, उसे स्थानांतरित करता है और[[[a], [1]], [[b], [2]]]
से[[a, 1], [b, 2]]
पर पंक्तियों को परिवर्तित करता है। यह स्क्रिप्ट से भी लिया जाता है और लगभग उपभोग करता है। 30.7% (275 एमएस का 857)।Sort
- एक मानकArray.sort
फ़ंक्शन, यह परीक्षण में शामिल किया गया है कि यह देखने के लिए कि मानक कार्य कितनी तेजी से काम करता है।Quick Sort [quick_sort]
- एक त्वरित सॉर्ट फ़ंक्शन here लिया गया। इसेArray.sort
फ़ंक्शन निष्पादन समय के साथ तुलना करने के लिए बेंचमार्क में जोड़ा गया है।Complete [test]
- एक फ़ंक्शन जिसमें कार्यों की कॉल, परीक्षण डेटा तैयार करना और ऊपर वर्णित कार्य शामिल हैं। इस बार कच्चे में समय का सारांश नहीं है।
निष्कर्ष: गैस कार्यों निष्पादन समय drifts। जीएएस Complete
फ़ंक्शन काम करता है 1.6 धीमी प्रतिस्पर्धी की तुलना में धीमा समय। जीएएस मानक Array.sort
फ़ंक्शन दो अन्य इंजनों की सबसे धीमी गति से धीमा है।सारांश में List To Map
और Adjust
सारांश में धीमे प्रतिस्पर्धी की तुलना में धीमे (334 एमएस बनाम 111 एमएस) हैं। कार्य चार्टिंग फ़ंक्शन के 39.2% (2759 एमएस के 1113) लेते हैं। मुझे उम्मीद नहीं थी कि ये कार्य इतनी धीमी गति से काम करते हैं। उदाहरण के लिए, कैश का उपयोग करके उन्हें अनुकूलित करना संभव है। आइए मान लें कि ऑप्टिमाइज़ेशन के बाद, इन फ़ंक्शन निष्पादन का समय 0 एमएस होगा। इस मामले में चार्टिंग फ़ंक्शन निष्पादन 1646 एमएस है।
इच्छाएं: यदि जीएएस टीम धीमी प्रतिस्पर्धी की गति से अपने इंजन को अनुकूलित कर सकती है, तो यह अपेक्षा करना संभव है कि निष्पादन समय 1 सेकंड या उससे कम तक कम हो जाए। स्प्रेडशीट से डेटा लाने के लिए समय अनुकूलित करने के लिए भी बहुत अच्छा होगा। मैं समझता हूं कि स्प्रेडशीट्स को बड़ी मात्रा में डेटा को संभालने के लिए डिज़ाइन नहीं किया गया है, लेकिन किसी भी मामले में, यह समग्र प्रदर्शन में वृद्धि करेगा।
क्या आपने कई बार अपने टेट चलाए? परिणाम contant हैं? मेरे अनुभव निष्पादन समय से असुरक्षित और संभवतः एकाधिक पैरामीटर –
@ सर्जिनस के आधार पर अत्यधिक चर है, निश्चित रूप से, मैंने दोनों स्क्रिप्ट को कई बार निष्पादित किया। जीएएस निष्पादन समय 8 सेकंड और अधिक है। काजा स्क्रिप्ट निष्पादन समय लगभग 5 एमएस है। – megabyte1024
@ सर्गेन्सस। [यहां] (https://script.google.com/macros/s/AKfycbypGjQbzQDU4qjGsN7tk6wsF3uOmloS1MiDhME-ds2NGqOc3zDM/exec) तैनात जीएएस स्क्रिप्ट और [इसका स्रोत कोड] है (https://script.google.com/d/1WfXGEkU3IHq86dJyXi0QTId4- RPLjzgk7OEin12bh8atpRr78LmqpI6z/संपादन)। – megabyte1024