मैं लाइन से अलग स्ट्रिंग पर कुछ काम करूंगा। पहले स्ट्रिंग.split के माध्यम से टेक्स्ट को विभाजित करने के लिए कौन सा तेज़ होगा और फिर परिणामस्वरूप सरणी पर चलें या सीधे पूरे टेक्स्ट को reg exp के माध्यम से चलें और रास्ते में अंतिम सरणी बनाएं?प्रदर्शन प्रश्न: String.split और फिर सरणी पर चलें, या RegExp?
उत्तर
ठीक है, आपका उत्तर पाने का सबसे अच्छा तरीका केवल 2 मिनट लेना है और एक लूप लिखना है जो यह एक हजार बार दोनों तरीकों से करता है और यह देखने के लिए फ़ायरबग जांचें कि कौन सा तेज़ है;)
मुझे एमएक्सएचआर पर काम करते समय बहुत सी स्ट्रिंग मुंगिंग को अनुकूलित करना पड़ा है और मेरे अनुभव में, सादे स्ट्रिंग विधियां मौजूदा ब्राउज़रों में RegExps की तुलना में काफी तेज हैं। सबसे कम स्ट्रिंग्स पर RegExps का उपयोग करें और स्ट्रिंग विधियों के साथ संभवतः आप जो भी कर सकते हैं वह करें।
उदाहरण के लिए, मैं अपने वर्तमान कोड में इस छोटे से नंबर का उपयोग:
var mime = mimeAndPayload.shift().split('Content-Type:', 2)[1].split(";", 1)[0].replace(' ', '');
यह नरक के रूप में बदसूरत है, लेकिन यह विश्वास है या नहीं यह अत्यधिक भार के बराबर RegExp की तुलना में काफी तेज है।
मुझे उम्मीद है कि विभाजन() का उपयोग करना बहुत तेज होगा। यह कई विनिर्देशों पर निर्भर करता है, लाइनों की लंबाई बनाम लंबाई, रेगेक्स की जटिलता इत्यादि।
के लिए समय निकालने के लिए धन्यवाद (एक से अधिक ब्राउज़र के लिए मानदंड परिणाम है, साथ ही कार्यात्मक बेंचमार्क कोड में ही शामिल है) जवाब। मैंने यह भी उम्मीद की कि देशी विधियां तेजी से होंगी लेकिन इस सवाल के लिए आईएमओ के अनुभव से कुछ भी बेहतर नहीं हो सकता है। धन्यवाद वैसे भी =) – BYK
वह उत्तर अनुभव पर आधारित है :) जैसा कि dfltr ने कहा था, आपको अपने विशेष मामले के लिए प्रयोग करने की आवश्यकता है। – RedFilter
वैसे समस्या यह है कि, मैं स्ट्रिंग आकार को नहीं जानता और regexp एक साधारण \ n | \ r matcher होगा यदि मैं regexp का उपयोग करता हूं। कोई और सुझाव? =) (बीटीडब्ल्यू सोचने के लिए खेद है कि यह अनुमान था;)) – BYK
हालांकि इस 2½ है साल देर से, उम्मीद है कि यह कुछ प्रकाश इस मामले पर भविष्य में किसी भी दर्शकों के लिए शेड में मदद करता है: http://jsperf.com/split-join-vs-regex-replace
- 1. ट्रीमैप पर फिर से कैसे चलें?
- 2. जावास्क्रिप्ट regexp प्रदर्शन।
- 3. regexp तर्क और या
- 4. String.scan और String.split
- 5. प्रश्न फिर से: पाइथन
- 6. फिर भी एक और छवि डाउनलोड प्रश्न
- 7. string.split - एकाधिक वर्ण डिलीमीटर
- 8. सी # उन्नत String.Split
- 9. String.split() * नहीं *?
- 10. string.split (टेक्स्ट) या text.split() क्या अंतर है?
- 11. जावा String.split प्रदर्शन के लिए precompiled regex में पारित
- 12. जावास्क्रिप्ट() लूप, विभाजन(), और सरणी प्रश्न
- 13. डब्लूपीएफ प्रदर्शन प्रश्न: तत्वों पर ब्रश बनाम अस्पष्टता पर अस्पष्टता
- 14. लोड बिटमैप लोड या ग्राफ़िक ड्रा? प्रदर्शन प्रश्न
- 15. ओपनजीएल निम्न-स्तरीय प्रदर्शन प्रश्न
- 16. एक थंबनेल बनाएं और फिर बाइट सरणी
- 17. विभाजन regexp
- 18. regexp पायथन और स्क्लाइट
- 19. विम दृश्य चयन और regexp
- 20. regexp
- 21. regexp
- 22. अजीब String.split ("\ n") व्यवहार
- 23. फिर भी अनुक्रम बिंदु से संबंधित एक और प्रश्न
- 24. पीएचपी सरणी प्रदर्शन - स्मृति बुद्धिमान
- 25. Regexp
- 26. regexp
- 27. Regexp
- 28. दृश्यमान = झूठी और प्रदर्शन के बारे में प्रश्न: कोई नहीं;
- 29. फिर व्यवस्था php साहचर्य सरणी
- 30. एसक्यूएल कैश निर्भरता के लिए प्रदर्शन प्रश्न
मैंने फायरबग के माध्यम से परीक्षण माना लेकिन वास्तव में जेएस के समय माप पर भरोसा नहीं किया। एक सहायक उदाहरण के साथ आपके उत्तर के लिए बहुत बहुत धन्यवाद;) – BYK
तो फायरबग पर भरोसा न करें - कुछ दिनांक वस्तुओं को बनाएं और तुलना करें – annakata
वैसे मुझे जेएस डेट ऑब्जेक्ट्स पर भरोसा नहीं है जब से (कुछ समय पहले) मैं प्रदर्शन को मापने की कोशिश की, हालांकि दावा किया गया कि यह मिलीसेकंड सटीक था, यह हमेशा सेकंड के गुणक लौट रहा था। यही कारण है कि मुझे विश्वास नहीं है। – BYK