मैं कुछ पीएनजी छवियों को सेवा देने के लिए node.js का उपयोग कर रहा हूं जो एक SQLite डेटाबेस में बाइनरी BLOBs के रूप में संग्रहीत हैं। ये छवियां औसत 9500 बाइट्स पर छोटी हैं।क्या node.js SlowBuffers "धीमा" बनाता है?
मैं the sqlite3 npm package का उपयोग कर रहा हूं, जो बाइनरी बीएलओबी ऑब्जेक्ट्स को SlowBuffers
के रूप में वापस करने के लिए प्रतीत होता है। मेरे Node.js सेवा इन SlowBuffers
स्मृति में धारण आईओ विलंबता कम करने के लिए, उन्हें इस तरह की सेवा:
response.send(slowBuffer);
ऐसा प्रतीत होता है SlowBuffer
एक अंतरफलक Buffer
के समान है; Buffer
को बदलने तुच्छ है:
var f = function(slowBuffer) {
var buffer = new Buffer(slowBuffer.length);
slowBuffer.copy(buffer);
return buffer;
}
मैं इन SlowBuffers
Buffers
में कन्वर्ट करना चाहिए?
मुझे समझने में सहायता करें कि उन्हें "धीमी" बफर क्यों कहा जाता है।
यदि 'बफर' में डेटा अभी भी 'स्लोबफर' का उपयोग कर रहा है, तो अंतर क्यों? क्या यह है कि पूर्व आवंटित 'स्लोबफर' है? – Brad
दोनों मेमोरी आवंटन ठीक हैं लेकिन बफर मेमोरी में हेरफेर करने के लिए देशी जेएस फ़ंक्शंस का उपयोग करता है, जबकि स्लोबफर बाहरी सी ++ एपीआई का उपयोग करता है। जब आप code+ एपीआई को node.js. से कॉल करते हैं तो एक ओवरहेड होता है। – user568109
क्या 'बफर' केवल 'स्लोबफर' का उपयोग करता है जब स्मृति की आवश्यकता 8K से अधिक होती है? यह संघर्ष में है, "प्रत्येक बफर वास्तव में स्लोबफर द्वारा समर्थित है", जहां मैं उलझन में हूं। – Brad