Was ist Erinnerung Mapping in java?

Speicher-Mapping in Java ist ein niedriges Niveau Konzept zu machen File I / O effizienter. Im Allgemeinen verwenden wir Stream oder Puffer Stream-Datei zu tun I / O. Obwohl gepufferten Strom wird häufig verwendet, um die Leistung der Eingangs-und Ausgangs-Datei zu erhöhen, aber der Speicher-Mapping ist die ultimative Technik, die verwendet werden, um die Leistung drastisch erhöhen kann. In Erinnerung map, die physikalische Datei wird mit dem im Speicher abgebildeten und dann das I / O wird in dem zugeordneten Speicher ausgeführt direkt. Als Folge der I / O basiert auf dem physikalischen Datei selbst durchgeführt. Aber Sie müssen vorsichtig sein, über die Speichernutzung. Es ist immer empfehlenswert, um den Speicher in kleine Stücke abzubilden, und dann lesen / schreiben auf die Datei. Es steigert die Leistung und auch gibt den Speicher nach Gebrauch. Wenn Sie die gesamte große Datei in den Speicher abbilden wollen dann könnte es hängen die Anlage selbst.

Im folgenden Beispiel, verwenden wir RandomAccessFile zum Lesen und Schreiben. Wir erstellen eine Datei-Kanal und dann mit Memory-Mapping, um die Datei mit Memory Karte. Hier MappedByteBuffer ist eine direkte Puffer mit Datei verwendet werden. Während Mapping müssen Sie erwähnen, die Start-und Endpunkt oder Lesen oder Schreiben. Diese Technik hilft Ihnen, einen bestimmten Bereich einer Datei zuordnen und führen Sie die Datei-I / O.

Beispiel-Code:

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

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

/**
*
* @ Author kaushikp
*/
public class JavaMemoryMap {

/**
* @ Param args die Kommandozeilen-Argumente
*/

static int length = 2048; // 128 Mb
public static void main(Schnur[] args) throws Exception {

//Erstellen RandomAccessFile und FileChannel
RandomAccessFile raf = new RandomAccessFile(“memorymaptest.dat”, “rw”);
FileChannel fc = raf.getChannel();

//Mapping die Datei mit Datei-Kanal
MappedByteBuffer mbb1 = fc.map(FileChannel.MapMode.READ_WRITE, 0, 1024);
MappedByteBuffer MBB2 = fc.map(FileChannel.MapMode.READ_WRITE, 1024, 2048);

//Schreiben Inhalt der zugeordneten Datei
für(int i = 0; ich < 1024; i )
mbb1.put((Byte)’x’);
System.out.println(“Fertige schriftlich xxx”);

für(int i = 0; ich < 1024; i )
mbb2.put((Byte)’y’);
System.out.println(“Schreiben fertig yyy”);
}
}

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

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share