Що таке Пам'ять відображення в Java?

Відображення пам'яті в Java є низька концепція рівні, щоб зробити файловий ввід / вивід більш ефективно. Взагалі ми використовуємо потік або потік буфера зробити файловий ввід / вивід. Хоча буфером потоку широко використовується для підвищення продуктивності файлового введення і виведення, але відображення пам'яті є кінцевою метод, який можна використовувати для збільшення продуктивності різко. У карті пам'яті, фізичний файл зіставляється з пам'яттю, а потім введення / висновок виконується у відображуваної пам'яті безпосередньо. У результаті введення / виведення виконується на фізичному файлі себе. Але ви повинні бути обережні, про використання пам'яті. Це завжди рекомендується підключати пам'яті невеликими порціями, а потім читання / запис файлів. Служить для підвищення продуктивності, а також звільняє пам'ять після використання. Якщо ви хочете відобразити весь великий файл в пам'ять, то це може призвести до зависання системи сама.

У наступному прикладі, ми будемо використовувати RandomAccessFile читати і писати. Ми створимо файл каналу, а потім використовувати відображення пам'яті, щоб відобразити файл з пам'яттю. Тут MappedByteBuffer є прямим буфера для використання з файлом. У той час як відображення необхідно відзначити початкову та кінцеву точку або читання або запису. Ця техніка допоможе вам відобразити певне область файлу і виконати файл введення / виведення.

Приклад коду:

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

імпорт java.io. *;
імпортувати java.nio. *;
java.nio.channels імпорт *.;

/**
*
* @ Автор kaushikp
*/
громадських JavaMemoryMap класу {

/**
* @ Параметрів аргументи аргументи командного рядка
*/

статичного довжина десяткового = 2048; // 128 Мегабайт
державної статичної сили основних(Рядок[] аргументи) Кидає виняток {

//Створення та RandomAccessFile FileChannel
RandomAccessFile RAF = нова RandomAccessFile(“memorymaptest.dat”, “RW”);
FileChannel FC = raf.getChannel();

//Відображення файлу за допомогою файлу каналу
MappedByteBuffer BB1 = fc.map(FileChannel.MapMode.READ_WRITE, 0, 1024);
MappedByteBuffer ВВ2 = fc.map(FileChannel.MapMode.READ_WRITE, 1024, 2048);

//Дати права на відображених файлів
для(INT I = 0; я < 1024; я )
mbb1.put((байт)’x’);
System.out.println(“Закінчив писати XXX”);

для(INT I = 0; я < 1024; я )
mbb2.put((байт)’y’);
System.out.println(“Закінчив писати YYY”);
}
}

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

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share