मैं एक साधारण क्लाइंट/सर्वर एप्लिकेशन लिख रहा हूं और मैंने पाया कि डेटा पढ़ने के लिए DataInputStream का उपयोग करना बहुत सुविधाजनक था क्योंकि यह आपको पढ़ने के लिए चुनने की अनुमति देता है (इसे बाइट से स्वयं परिवर्तित करने के बिना), लेकिन मुझे आश्चर्य है कि क्या BufferedInputStream में इसे लपेटना सबसे अच्छा होगा, या अगर वह अनावश्यक ओवरहेड जोड़ देगा?जावा - सॉकेट के साथ DataInputStream का उपयोग करके, buffered या नहीं?
कारण मैं पूछ रहा हूं क्योंकि मुझे नहीं पता कि सॉकेट स्ट्रीम से सीधे पढ़ने के लिए कितना महंगा है (BufferedInputStream का उपयोग करते समय यह सॉकेट स्ट्रीम से केवल एक बार पढ़ेगा और फिर BufferedInputStream का उपयोग करके गुणा करें DataInputStream)।
प्राप्त डेटा आमतौर पर लगभग 20-25 बाइट्स बहुत छोटा होता है।
किसी भी उत्तर के लिए अग्रिम धन्यवाद! : डी
यह समझ में नहीं आता है। सॉकेट के जीवन के लिए एक बार बफर आवंटित किया जाता है। पढ़ने की कोई संख्या हो सकती है। छोटे * अधिक * भावना बफरिंग बनाता है। – EJP
यदि ग्राहक कनेक्ट हो रहे हैं, तो एक छोटा संदेश भेजना, फिर डिस्कनेक्ट करना (कुछ अजाक्स-वाई हो सकता है) तो बफरिंग अक्षम हो सकती है। पढ़ने की संख्या बहुत छोटी होनी चाहिए, लेकिन हो सकता है कि 20-25 रेंज कम हो। मुझे नहीं पता: यही कारण है कि मैंने प्रोफाइलिंग का सुझाव दिया। –
अब जब मैं इसके बारे में सोचता हूं, AJAX आपको 20-25 बाइट संदेश नहीं प्राप्त करेगा ... एक्सएमएल बहुत वर्बोज़ है। फिर भी, मैंने * माना है कि ग्राहक अपने कनेक्शन बनाए नहीं रखते हैं। अगर वह धारणा गलत है तो हमेशा एक बफर का उपयोग करें। –