ऑप्टिमाइज़ेशन पर the recent smashing magazine लेख पढ़ने के बाद, मैंने यह देखने के लिए कुछ परीक्षण चलाए कि मेरे सरणी में से एक के बीच से एक तत्व को "हटाने" का सबसे प्रभावी तरीका क्या होगा।पहले तत्व को हटाने के बाद ऐरे ट्रैवर्सल परिमाण तेजी से
सरणी के बीच से एक मूल्य को अलग करने के लिए अपने स्वयं के परीक्षण चलाने के बाद इसे हटाकर/इसे शून्य पर सेट करने के बाद, मैं अप्रत्याशित परिणाम में आया कि सरणी से मूल्य को विभाजित करने से सरणी को ऑर्डर दिया गया ट्रैवर्स के लिए तेज़ी से तीव्रता।
अधिक जांच ने मुझे this पर ले जाया।
किसी कारण से, सरणी से पहले रिकॉर्ड में .shift() 'इसे 300 गुना तेज करने के लिए बनाया गया है (v8 में सबसे बड़ा प्रदर्शन देखा जा रहा है, लेकिन ऐसा लगता है कि मैंने कोशिश की सभी ब्राउज़रों के लिए मान्य है उस में)।
मुझे संदेह है कि मैं इसका दुरुपयोग करूंगा क्योंकि मुझे नहीं लगता कि वास्तविक ट्रैवर्सल एक बाधा है, लेकिन क्या कोई यह जानता है कि यह व्यवहार क्यों होता है?
संपादित करें: जेएसपीरफ़ का गलत उपयोग नीचे अंतर्निहित मुद्दा था, नीचे मेरा जवाब देखें।
मुझे ऐसा नहीं लगता है, अगर ऐसा होता है, तो यह परीक्षण केस http://jsperf.com/spliced-vs-non-spliced/6 दोनों एक ही गति के साथ आना चाहिए, विभाजन के साथ बहुत ही मामूली तेजी से जो मामला प्रतीत नहीं होता है। – Doug