Qu'est-ce que la cartographie de la mémoire en java?

Cartographie de la mémoire en java est un concept de bas niveau pour faire je déposer / S de manière plus efficace. En général, nous utilisons flux en mémoire tampon ou de le faire fichier I / O. Bien flux de tampon est largement utilisé pour augmenter les performances du fichier d'entrée et de sortie, mais mappage de mémoire est la technique ultime qui peut être utilisé pour augmenter considérablement les performances. Sur la carte mémoire, le fichier physique est mappée avec la mémoire et l'entrée / sortie est effectuée dans la mémoire à mappage direct. À la suite de l'E / S est effectuée sur le fichier physique lui-même. Mais vous devez faire attention à l'utilisation de la mémoire. Il est toujours recommandé de mapper la mémoire en petits morceaux, puis en lecture / écriture sur le fichier. Il augmente les performances et libère aussi la mémoire après utilisation. Si vous voulez mapper le fichier entier en mémoire grand alors il peut bloquer le système lui-même.

Dans l'exemple suivant, nous allons utiliser RandomAccessFile à lire et à écrire. Nous allons créer un canal de fichier, puis utiliser le mappage de mémoire pour mapper le fichier avec la mémoire. Voici MappedByteBuffer est un tampon directe pour être utilisé avec le fichier. Alors que la cartographie, vous devez mentionner le début et la fin ou de la lecture ou de l'écriture. Cette technique vous permet de mapper une région particulière d'un fichier et effectuer le fichier I / O.

Exemple de code:

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package JavaTips.com;

import java.io. *;
java.nio importation. *;
import java.nio.channels.*;

/**
*
* Kaushikp auteur @
*/
JavaMemoryMap public class {

/**
* @ Param args les arguments de ligne de commande
*/

static int longueur = 2048; // 128 Mb
public static void main(Chaîne[] args) throws Exception {

//Créer RandomAccessFile et FileChannel
RandomAccessFile raf = new RandomAccessFile(“memorymaptest.dat”, “rw”);
FileChannel fc = raf.getChannel();

//Cartographier le fichier en utilisant le canal de fichiers
MappedByteBuffer mbb1 = fc.map(FileChannel.MapMode.READ_WRITE, 0, 1024);
MappedByteBuffer MBB2 = fc.map(FileChannel.MapMode.READ_WRITE, 1024, 2048);

//Rédaction de contenu sur le fichier mappé
pour(int i = 0; Je < 1024; i )
mbb1.put((octet)’x’);
System.out.println(“Xxx écriture terminée”);

pour(int i = 0; Je < 1024; i )
mbb2.put((octet)’y’);
System.out.println(“Yyy terminé l'écriture”);
}
}

============================================= ============================================== Buy best TechAlpine Books on Amazon
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share