Cachenya dan cache anda sendiri bukanlah konsep yang sama. Proses umum adalah seperti berikut.
Apabila menggunakan aliran input tanpa caching
Setiap kali anda membaca, sistem melakukan operasi baca untuk membaca data Jika anda menentukan bait untuk dibaca, ia akan membaca satu bait, jika anda menentukan tatasusunan, ia akan membaca tatasusunan perbezaan antara program dan data anda Kecekapan membaca mempunyai hubungan yang hebat.
dan apabila menggunakan
, ia kelihatan seperti ini bufferedinputstream
Apabila anda mencipta
, ia akan bufferedinputstream serta-merta membaca data dan memasukkannya ke dalam memori yang diuruskan oleh jvm Setiap kali anda membacanya, ia tidak akan pergi ke sana lagi. . Membaca daripada sistem akan membacanya dari ingatan. Data , dan kemudian tentukan sama ada terdapat banyak baki dalam memori Jika tidak, ia akan mengarahkan sistem untuk membaca operasi sama ada anda membaca bait atau tatasusunan, sistem tidak semestinya Akan mengendalikan cakera keras. Korelasi antara kecekapan program anda dan pembacaan data adalah sangat kecil. Fikirkan tentangnya dari sudut lain,
Jika anda menggunakan strim tanpa penimbal, buka fail dan kemudian tutupnya dengan segera, sistem
tidak akan membuat sebarang panggilan data , dan penutupan akan dilaksanakan dengan cepat. Dan jika anda membuka fail dengan strim buffer, walaupun ia ditutup serta-merta tanpa membaca, penutupan tidak akan dilaksanakan serta-merta, dan sistem telah pun membaca sebahagian daripada data ke dalam memori , yang akan menjadi kurang cekap daripada menggunakan tanpa penimbal. Sudah tentu tiada siapa yang akan bosan untuk mencipta aliran dan kemudian menutupnya tanpa membacanya, bukan?
Tiada hubungan antara penimbalan dan penggunaan tatasusunan untuk menerima kandungan Ini tidak bermakna dengan penimbalan, tidak perlu tatasusunan untuk menerima kandungan.
Oleh kerana kami berharap dapat menggunakan semula bait ini[], jika tidak, apabila berhadapan dengan penghantaran IO aliran data yang besar, anda akan mendapati YGC akan sangat gembira
Cachenya dan cache anda sendiri bukanlah konsep yang sama. Proses umum adalah seperti berikut.
Setiap kali anda membaca, sistem melakukan operasi baca untuk membaca data Jika anda menentukan bait untuk dibaca, ia akan membaca satu bait, jika anda menentukan tatasusunan, ia akan membaca tatasusunan perbezaan antara program dan data anda Kecekapan membaca mempunyai hubungan yang hebat.
Apabila anda mencipta, ia akan
Jika anda menggunakan strim tanpa penimbal, buka fail dan kemudian tutupnya dengan segera, sistembufferedinputstream
serta-merta membaca data dan memasukkannya ke dalam memori yang diuruskan oleh jvm Setiap kali anda membacanya,ia tidak akan pergi ke sana lagi. . Membaca daripada sistem akan membacanya dari ingatan. Data , dan kemudian tentukan sama ada terdapat banyak baki dalam memori Jika tidak, ia akan mengarahkan sistem untuk membaca operasi sama ada anda membaca bait atau tatasusunan, sistem tidak semestinya Akan mengendalikan cakera keras. Korelasi antara kecekapan program anda dan pembacaan data adalah sangat kecil.
Fikirkan tentangnya dari sudut lain,
tidak akan membuat sebarang panggilan data
, dan penutupan akan dilaksanakan dengan cepat. Dan jika anda membuka fail dengan strim buffer, walaupun ia ditutup serta-merta tanpa membaca, penutupan tidak akan dilaksanakan serta-merta, dan sistem telah pun membaca sebahagian daripada data ke dalam memori
, yang akan menjadi kurang cekap daripada menggunakan tanpa penimbal. Sudah tentu tiada siapa yang akan bosan untuk mencipta aliran dan kemudian menutupnya tanpa membacanya, bukan?
Tiada hubungan antara penimbalan dan penggunaan tatasusunan untuk menerima kandungan Ini tidak bermakna dengan penimbalan, tidak perlu tatasusunan untuk menerima kandungan.
Oleh kerana kami berharap dapat menggunakan semula bait ini[], jika tidak, apabila berhadapan dengan penghantaran IO aliran data yang besar, anda akan mendapati YGC akan sangat gembira