सामान्य जावास्क्रिप्ट इंजन, जैसे वी 8 और वेबकिट के जावास्क्रिप्टकोर, जावास्क्रिप्ट तारों के लिए string interning का उपयोग करें? या क्या वे वास्तव में स्मृति में समान तारों के कई उदाहरण रखते हैं?सामान्य जावास्क्रिप्ट कार्यान्वयन स्ट्रिंग इंटर्निंग का उपयोग करें?
उत्तर
हां। सामान्य रूप से जेएस स्रोत में किसी भी शाब्दिक स्ट्रिंग, पहचानकर्ता, या अन्य निरंतर स्ट्रिंग को प्रशिक्षित किया जाता है। हालांकि कार्यान्वयन विवरण (उदाहरण के लिए जो इंटर्न किया गया है) अलग-अलग होता है, साथ ही जब इंटर्निंग होती है।
ध्यान दें कि एक स्ट्रिंग मान स्ट्रिंग ऑब्जेक्ट के समान नहीं है, हालांकि स्ट्रिंग ऑब्जेक्ट्स इंटर्न नहीं किए जाते हैं क्योंकि यह मौलिक रूप से गलत व्यवहार होगा।
http://jsperf.com/strinterning
क्रोम में हाँ, कोई अरोड़ा 15 और एफएफ 13 में! फ़ायरफ़ॉक्स में दो पॉइंटर्स की तुलना में दो तारों की तुलना में 85% धीमी है। हालांकि यह क्रोम में एक ही गति है, जो एक संकेत है कि यह दो पॉइंटर्स की तुलना कर रहा है।
हो सकता है कि मोज़िला पर जे एस इंजन टीम अपने कोड की जाँच करनी चाहिए ...
यदि आपको लगता है कि यह बुरा है, तो IE9 पॉइंटर तुलना भी नहीं करता है [जब स्ट्रिंग वैरिएबल की तुलना * * * * (http://www.kpozin.net/archive/2011/05/ie9 -और-स्ट्रिंग-समानता)। ([संबंधित जेएसपीआरएफएस] (http://jsperf.com/string-comparison1/3)।) – kpozin
- 1. स्ट्रिंग इंटर्निंग?
- 2. सी # स्ट्रिंग इंटर्निंग
- 3. जावा में स्ट्रिंग तुलना और स्ट्रिंग इंटर्निंग
- 4. जावा स्ट्रिंग इंटर्निंग, क्या गारंटी है?
- 5. एक सामान्य NSDiscardableContent कार्यान्वयन
- 6. स्ट्रिंग इंटर्निंग की खोज लागत और शाब्दिक तारों की घोषणा
- 7. मुझे deserialization पर स्ट्रिंग इंटर्निंग को कैसे संभालना चाहिए?
- 8. सामान्य अपवाद का उपयोग कैसे करें?
- 9. जावास्क्रिप्ट: ब्राउज़र-कुकी कार्यान्वयन का अनुकरण कैसे करें?
- 10. Emacs के जावास्क्रिप्ट कार्यान्वयन
- 11. जावास्क्रिप्ट Array.sort कार्यान्वयन?
- 12. जावास्क्रिप्ट में replaceAll() का उपयोग कैसे करें .........................?
- 13. जावास्क्रिप्ट में एसक्रिप्ट कार्यान्वयन?
- 14. JSON शाब्दिक स्ट्रिंग का उपयोग कैसे करें?
- 15. मेमोरी-कुशल सी ++ स्ट्रिंग्स (इंटर्निंग, रस्सी, कॉपी-ऑन-राइट, इत्यादि)
- 16. जावास्क्रिप्ट डिफलेट कार्यान्वयन
- 17. जावास्क्रिप्ट टाइमर कार्यान्वयन
- 18. जावास्क्रिप्ट बड़े-ओ संपत्ति का उपयोग प्रदर्शन
- 19. एंड्रॉइड में एक गतिशील स्ट्रिंग नाम का उपयोग कर स्ट्रिंग का उपयोग कैसे करें (जावास्क्रिप्ट में eval के समान)?
- 20. सामान्य स्ट्रिंग एन्क्रिप्शन
- 21. का उपयोग सी सामान्य प्रकार
- 22. जावास्क्रिप्ट का उपयोग कर स्ट्रिंग में कोई संख्या कैसे खोजें?
- 23. LinkedBlockingQueue का उपयोग कर IntentService का कार्यान्वयन?
- 24. क्या मुझे स्ट्रिंग एस = नई स्ट्रिंग ("एक नई स्ट्रिंग") नहीं करना चाहिए; जावा में, स्वचालित स्ट्रिंग इंटर्निंग के साथ भी?
- 25. जावास्क्रिप्ट: स्ट्रिंग
- 26. ऑपरेटर सामान्य तरीके
- 27. "सामान्य" कार्यों बनाम जावास्क्रिप्ट
- 28. सी ++ 11 कॉन्स्टेक्स स्ट्रिंग कार्यान्वयन
- 29. सी का उपयोग करें: गैर-स्ट्रिंग मान
- 30. va_start में स्ट्रिंग का उपयोग कैसे करें?
हाय @olliej, आपकी बयान के लिए किसी भी स्रोत है? –
@FelipeSabino एक प्रमुख इंजन पर काम कर रहा है और ecmascript समिति गिनती पर है? ;) अधिक गंभीरता से हालांकि आप जावास्क्रिप्टकोर, स्पाइडरमोन्की, वी 8, आदि के स्रोतों को ऑनलाइन देख सकते हैं। – olliej
बेशक मैं किसी भी ओपन सोर्स कोड को देख सकता हूं और इसे अपने लिए देख सकता हूं, लेकिन इस समस्या से बचने के कारणों में से एक कारण है। यह आपके ज्ञान पर संदेह करने का सवाल नहीं है, यह केवल अपने शोध के साथ डेवलपर्स की मदद करने के बारे में चिंता का विषय है। ऐसा लगता है कि आप ऐसे व्यक्ति हैं जो इस विषय के बारे में बहुत कुछ जानते हैं, और साथ ही साथ और अधिक जोरदार संदर्भों के साथ जो मुझे इस विषय के बारे में बहुत कुछ सीखने में मदद कर सकते हैं। बस उदाहरण के लिए, आपने कहा "सामान्य तारों में प्रशिक्षित होते हैं", वे मामले क्या हैं जहां वे नहीं हैं? और इतने पर ... –