Quelle est la taille du tampon par défaut pour java.io.BufferedInputStream sur les machines JVM anciennes et exotiques?

J'ai fait quelques recherches pour un billet de blog concernant java.io.BufferedInputStream et les tampons. Apparemment, au fil des ans, la valeur par défaut a augmenté de seulement 512 octets 8192 octets de (présomptueux) de Sun Java 7 mise en œuvre, et a même été explicitement spécifié dans le La documentation javadoc dans le JDK 1.1.8. Ma question a également soulevé des questions de de qui/de quoi deciedes ce que la valeur par défaut doit être--ce n'est pas que noir-n-blanc comme je l'avais prévu.

Je suis curieux de savoir ce que la taille par défaut du tampon a été à chaque sortie de la versionet ce qu'elle peut être dans d'autres, exotique Jvm. Jusqu'à présent, j'ai suivi vers le bas, via le code source, la documentation Javadoc Soleil ou des rapports de bogues pour 1.0, 1.1, 1.4, Java 5, la version 6 de Java et (présomptueux de nouveau) Java de Sun 7 JVM.

Ce que je n'ai pas réussi à tourner jusqu'a cette valeur pour

  • Sun JDK 1.2 de la JVM
  • Sun JDK 1.3 mise en œuvre du
  • Toute autre mise en oeuvre de la valeur (comme IBM ou autre chose)

Donc, je me demandais quelles sont ces valeurs, et où je pourrais trouver une référence à eux?

Ou, le dénudement, le cas échéant SOpedians puisse avoir accès à l'un de ces installations. Si oui, pourriez-vous compilez et exécutez le code ci-dessous, et ensuite un rapport ici? Ou connaissez-vous

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;
    }
}

source d'informationauteur Stu Thompson