Sobes.tech
Junior
169

Javaда буферлөөнин артыкчылыктары эмнелер?

AIден жооп

sobes.tech AI

Bufferleýiş giriş/çykış operasiýalarynyň öndürijiligini ýokarlandyrýar, sebäbi fiziki enjam (disk, tor) erişimleriniň sanyny azaldýar. Maglumatlar wagtlaýyn ýatda (buffer) saklanýar we uly bloklar görnüşinde işlenýär, baytlar boýunça däl.

Ulylyk:

  • Sistem jaňlaryny azaltmak: Maglumatlary bloklar görnüşinde okamak/yazmak operasion ulgamyna has az jaň edilmegini talap edýär.
  • Iş wagtyny gysgaeltmek: Az sistem jaňlary, az overhead we has tiz ýerine ýetirilýän giriş/çykış operasiýalaryna getirýär.
  • Hardwar resurslaryny netijeli ulanmak: Bufferleme, ýatda we giriş/çykış enjamlary arasynda maglumat alyş-çalşygyň tizligini has netijeli ulanmagyna mümkinçilik berýär.
  • Bandwidthy ýokarlandyrmak: Bir gezek uly möçberde maglumatlary işlemek, ulgamyň umumy bandwidthyny ýokarlandyrýar.

Bufferlenen akym (meselem, BufferedReader, BufferedWriter, BufferedInputStream, BufferedOutputStream) ulanylýanda, maglumatlar ilkinji nobatda ýatda ýerleşýän bufferde jemlenýär we soňra çeşme ýa-da kabul ediji okalýar ýa-da ýazylýar.

// Bufferlenen ýazgy üçin mysal
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;

public class BufferedWritingExample {

    public static void main(String[] args) {
        try (BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt"))) {
            writer.write("Bu ilkinji setir.\n");
            writer.write("Bu ikinji setir.\n");
            // Maglumatlar derrew faýla ýazylmaýar, bufferde saklanýar
            writer.flush(); // Bufferdäki maglumatlary majbury ýazmak
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}