2011-07-16 2 views
1

J'ai besoin de créer des fichiers de test de grande taille — près de 3 GB. Donc j'essaie d'écrire pour commencer seulement la chaîne "1" — pour vérifier la performance et l'exactitude.performances Java BufferedWriter

FileWriter fstream = new FileWriter("c:/out.txt"); 
BufferedWriter out = new BufferedWriter(fstream,10000000); 
for (int i = 0; i < 1000000000; i++) { 
    //out.write(Integer.toString(1)); 
    out.write("1"); 
    out.newLine(); 
} 
out.close(); 

Dans les versions futures, j'ai besoin d'écrire des entiers aléatoires. Maintenant, il prend mon ordinateur 3 min 26 s. La modification de la taille du tampon semble ne pas aider. Est-il possible d'accélérer le processus d'écriture? Merci.

+0

Vos fichiers doivent-ils contenir des données chaîne/caractère? Ici, vous passez par une couche d'encodage de texte qui peut ne pas être nécessaire. Veuillez ajouter plus de détails sur le format des données que vous essayez d'écrire dans vos fichiers. – seh

Répondre

4

Eh bien, 3Go est 3072MB - et si vous avez une vitesse d'écriture de 25Mbps - il devrait prendre un peu plus de 2 minutes. Essayez-le sur un autre ordinateur et comparer les résultats - peut-être son juste vous disque dur qui n'est pas rapide

+0

Merci, je l'oublie. – user710818

1

Vous voudrez peut-être regarder un tableau de raid afin d'accélérer votre écriture. Écrire beaucoup de données est un processus lent. Aussi, vous pouvez regarder un SSD ou dans certaines méthodes de mémoire (lecteur RAM).

Questions connexes