2010-01-19 8 views
16

मैं java.io.BufferedInputStream और बफर के संबंध में ब्लॉग पोस्ट के लिए कुछ शोध कर रहा हूं। जाहिर है, पिछले कुछ वर्षों में, डिफ़ॉल्ट (अनुमानतः) सूर्य के जावा 7 कार्यान्वयन के रूप में डिफ़ॉल्ट 512 बाइट्स से 8192 बाइट्स तक बढ़ गया है, और JavaDocs in JDK 1.1.8 में भी स्पष्ट रूप से निर्दिष्ट किया गया था। मेरे प्रश्न ने who/what deciedes what the default should be के प्रश्न भी उठाए हैं - जैसा कि मैंने अपेक्षा की थी, उतना काला-सफेद नहीं है।पुराने और विदेशी JVMs पर java.io.BufferedInputStream के लिए डिफ़ॉल्ट बफर आकार क्या हैं?

मैं के रूप में उत्सुक हूं कि प्रत्येक संस्करण में डिफ़ॉल्ट बफर आकार रिलीज़ किया गया है, और यह अन्य, विदेशी जेवीएम में क्या हो सकता है। अब तक मैंने इसे ट्रैक किया है, स्रोत कोड, जावाडॉक्स या सन बग रिपोर्ट 1.0, 1.1, 1.4, जावा 5, जावा 6 और (अनुमानतः दोबारा) सूर्य के जावा 7 जेवीएम के लिए।

मैं क्या बारी करने में विफल रहा है उसके लिए यह मान है

  • सूर्य JDK 1.2 के JVM कार्यान्वयन
  • सूर्य JDK 1.3 के कार्यान्वयन
  • किसी भी अन्य कार्यान्वयन के आईबीएम या कुछ और की तरह मूल्य (अन्य)

तो, मैं सोच रहा था कि ये मूल्य क्या हैं और कहां मुझे संदर्भ मिल सकता है?

या, उस बार्बिंग, अगर वहां किसी भी सोपियन के पास इन प्रतिष्ठानों में से किसी एक तक पहुंच हो सकती है। यदि हां, तो क्या आप नीचे दिए गए कोड को संकलित और चला सकते हैं, और फिर यहां रिपोर्ट करें? या, आप

import java.io.BufferedInputStream; 
import java.io.InputStream; 

public class BufferSizeDetector extends BufferedInputStream { 
    public static void main(String[] args) { 
     BufferSizeDetector bsd = new BufferSizeDetector(null); 

     System.err.println(System.getProperty("java.version")); 
     System.err.println(bsd.getBufferSize()); 
    } 

    public BufferSizeDetector(InputStream in) { 
     super(in); 
    } 

    public int getBufferSize() { 
     return super.buf.length; 
    } 
} 
+2

इस समुदाय विकी के रूप में चिह्नित किया जाना चाहिए। इसके अलावा, आप यहां संग्रहीत सूर्य जेडीके रिलीज डाउनलोड कर सकते हैं: http://java.sun.com/products/archive/ – BalusC

+0

हां, लेकिन यह बहुत काम है ...मैं एक मैक पर हूं और जेवीएम, याडा, याडा, याडा स्थापित करने, ईसी 2 उदाहरणों को मारने का अंत कर दूंगा। (मैं उस तरह आलसी हूँ।) –

+0

सामुदायिक विकी? यह सिर्फ एक सवाल नहीं है, सहयोग का अनुरोध है। – BalusC

उत्तर

1

का पता है मुझे यकीन है कि क्या आप इस से जानने के लिए आशा है कि नहीं कर रहा हूँ, लेकिन जब से मैं इसे मेरे सामने है ... एक Win32 आईबीएम 1.4.2 JRE का एक बफर आकार का उपयोग करता है 2048

+0

उत्कृष्ट। धन्यवाद। (क्या आप अभी भी 1.4 पर कोडिंग कर रहे हैं? * ओच। *) –

3

सिस्टम:

Linux wart 2.6.33-rc1-00225-gc9f937e #2 Wed Dec 23 17:55:01 UTC 2009 armv5tel GNU/Linux 
OpenJDK Runtime Environment (IcedTea6 1.4.1) (6b14-1.4.1-0ubuntu10) 
OpenJDK Core VM (build 14.0-b08, interpreted mode) 

अपने कार्यक्रम से उत्पादन:

1.6.0_0 
8192 
+0

आईसीएसटीए ... शांत। मैंने इसके बारे में नहीं सोचा था। –

5

Mac OS X Tiger 10.7.0, डिफ़ॉल्ट एप्पल द्वारा प्रदत्त वीएम:

Java(TM) SE Runtime Environment (build 1.6.0_26-b03-383-11A511) 
Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02-383, mixed mode) 

तब:

1.6.0_26 
8192 
विंडोज 7 में मेरी इंटेलीजे से ०५३६९१३६३२१०
1

रन:

  • JRE: 1.8.0_112 रिलीज-724-बी -6 amd64
  • JVM: OpenJDK 64-बिट सर्वर जेटब्रेन्स SRO द्वारा वीएम
  • विंडोज 7 6.1

आउटपुट:

1.8.0_121 
8192