मैं समझता हूँ की तरहफास्ट तरीका
var a = "hello";
a += " world";
यह अपेक्षाकृत बहुत धीमी है कुछ कर रही है कि, जैसा कि ब्राउज़र O(n)
में करता है। क्या नई पुस्तकालयों को स्थापित किए बिना ऐसा करने का एक तेज तरीका है?
मैं समझता हूँ की तरहफास्ट तरीका
var a = "hello";
a += " world";
यह अपेक्षाकृत बहुत धीमी है कुछ कर रही है कि, जैसा कि ब्राउज़र O(n)
में करता है। क्या नई पुस्तकालयों को स्थापित किए बिना ऐसा करने का एक तेज तरीका है?
जावास्क्रिप्ट में स्ट्रिंग्स में शामिल होने के लिए यह सबसे तेज़ तरीका है।
अधिक जानकारी के लिए, देखें:
Why is string concatenation faster than array join?
JavaScript: How to join/combine two arrays to concatenate into one array?
मेरे परीक्षणों में, स्ट्रिंग कॉन्सटेनेशन nodejs v 0.12.2 (और ut.format से 100 गुना तेज) में array.join से 10 गुना तेज था http://edsykes.blogspot.de/2015/08/a-quick-comparison -of-speed-of.html –
स्ट्रिंग को जोड़ने के लिए जावास्क्रिप्ट में वास्तव में कोई अन्य तरीका नहीं है।
आप सैद्धांतिक रूप से .concat()
इस्तेमाल कर सकते हैं, लेकिन यह सिर्फ +
पुस्तकालय से way slower है विशेष रूप से स्ट्रिंग संयोजन या सांख्यिक संचालन जैसे बुनियादी कार्यों पर अधिक बार नहीं देशी जावास्क्रिप्ट की तुलना में धीमी की तुलना में कर रहे हैं।
बस डालें: +
सबसे तेज़ है।
सवाल पहले से ही उत्तर है, लेकिन जब मैं पहली बार इसे देखा मैं NodeJS बफर के बारे में सोचा। लेकिन यह + से धीमा तरीका है, इसलिए यह संभव है कि स्ट्रिंग कॉन्सटेनेशन में + से कुछ भी तेज न हो।
निम्न कोड के साथ परीक्षण किया गया:
function a(){
var s = "hello";
var p = "world";
s = s + p;
return s;
}
function b(){
var s = new Buffer("hello");
var p = new Buffer("world");
s = Buffer.concat([s,p]);
return s;
}
var times = 100000;
var t1 = new Date();
for(var i = 0; i < times; i++){
a();
}
var t2 = new Date();
console.log("Normal took: " + (t2-t1) + " ms.");
for (var i = 0; i < times; i++){
b();
}
var t3 = new Date();
console.log("Buffer took: " + (t3-t2) + " ms.");
आउटपुट:
Normal took: 4 ms.
Buffer took: 458 ms.
उस बफर के साथ, आप एक स्ट्रिंग वाले रैपर को प्रारंभ कर रहे हैं, फिर आप 2 रैपर से एक सरणी बना रहे हैं, जिसमें सरणी के माध्यम से कॉन्सटेनेट फ़ंक्शन लूप है, (और शायद ' तारों को संयोजित करने के लिए), और इसे वापस करें। मुझे लगता है कि यह बताता है कि बफर धीमा क्यों है। – Cerbrus
आप प्रदर्शन के बारे में पूछा। यह perf test 'कॉन्सट', '+' और 'जॉइन' की तुलना में देखें - संक्षेप में + ऑपरेटर कम से कम जीतता है।
भले ही यह सच होगा (स्ट्रिंग का समन्वय बहुत धीमा है), क्या आपका कोड इस पर निर्भर करता है कि यह भी महत्वपूर्ण है? – WTK