Sejak jauh sebelum Mac OS X hadir, kami dapat meminta Finder untuk Menghitung semua ukuran untuk menentukan jumlah total ruang ukuran file yang dapat dibaca yang terdapat di setiap folder untuk jendela Finder yang dimaksud.
Saya telah menguji ukuran tampilan daftar folder pada beberapa Mac di mana tidak masalah jika SSD hadir atau tidak, tapi Lion begitu cepat dalam menghitung ukuran Saya ingin tahu apakah ada beberapa struktur data caching baru atau jika Finder menggunakan informasi metadata dari Spotlight atau database serupa untuk mempercepat perhitungan ini.
lion
finder
performance
bmike
sumber
sumber
Jawaban:
Saya belum mengamati Lion lebih cepat dalam menghitung ukuran folder (dan paket / bundel) selama pertama kali menghitung ukuran dalam folder. Namun, perhitungan selanjutnya dalam folder yang sama tampaknya jauh lebih cepat.
Bagian dari kecepatan yang dirasakan mungkin bahwa Finder akan segera menampilkan ukuran yang sebelumnya dihitung dalam teks abu-abu saat menghitung ulang ukuran folder, daripada menampilkan "-" sampai dihitung. Setelah ukuran folder dihitung ulang, nomor akan diperbarui (jika ukurannya berubah) dan berubah menjadi hitam.
Karena Finder mengamati cache ukuran folder yang sebelumnya dihitung, mungkin saja itu hanya menghitung ulang ukuran folder yang telah berubah sejak terakhir kali dihitung.
sumber
Sebelum Lion, kolom Ukuran File di Finder.app akan menampilkan ukuran yang dibutuhkan setiap file pada hard disk, bukan ukuran file yang tepat. Sebagai contoh, file 1 byte ditampilkan sebagai 4 KB karena mereka sebenarnya mengambil ruang 4 KB pada sistem yang diformat HFS. Tidak ada cara mudah untuk melihat ukuran file aktual 1 byte, selain membuka File ›Get Info (atau menggunakan aplikasi yang berbeda, seperti Terminal.app dan kemudian menggunakan
ls -lsa
, atau penggantian Finder.app seperti TotalFinder.app ).(Kembali pada hari itu, saya melaporkan ini sebagai bug 8926275 di bugreport.apple.com .)
Pada Lion, perilaku ini telah diperbaiki, dan kolom Ukuran File sekarang akan menunjukkan ukuran file yang tepat untuk setiap file daripada ukuran yang dialokasikan pada hard disk (yang tergantung pada sistem file tetap).
Karena ukuran ini adalah angka yang sama dengan yang Anda dapatkan dari
ls
biner di Terminal, mereka jauh lebih efisien untuk dihitung.sumber
stat(2)
panggilan bertanggung jawab untuk mengambil kedua nomor? Danls(1)
tidak menunjukkan ukuran sebenarnya dari bundel / paket / folder sama sekali, jadi saya tidak tahu mengapa itu relevan.ls
menunjukkan ukuran file dengan baik untuk file biasa.stat
dapat melakukan hal yang sama untuk satu file. Maksud saya adalah bahwa "kerja ekstra" yang diperlukan untuk menghitung bundel / paket / ukuran folder sekarang hanya diperlukan untuk bundel / paket / folder, bukan untuk file biasa lagi.ls
menunjukkan ukuran file untuk file biasa, bukan bundel (itulah yang saya katakan). Ini melakukan ini dengan meneleponstat
. "Kerja ekstra" apa yang diperlukan untuk file biasa sebelumnya?stat
Panggilan tunggal mengembalikan kedua blok (st_blocks
) dan byte (st_size
).Saya tidak akan terkejut jika mereka menggunakan metadata Spotlight untuk menyimpan ukuran file cache. Jika Anda sudah menggunakan FSEvents untuk melacak semua perubahan dalam sistem file dan (berpotensi) Time Machine untuk mendukung semua perubahan itu, biaya tambahan untuk menghitung dan menyimpan ukuran file agregat dapat diabaikan.
sumber
Dimulai dengan OS X Lion, Apple telah menambahkan database SQLite yang OS gunakan untuk pelacakan file dalam fitur sistem seperti Spotlight. Permintaan dari database SQLite daripada memeriksa sistem file setiap kali lebih besar kemungkinan menjadi penyebab peningkatan kinerja. Ulasan OS X Lion dari John Siracusa menjelaskan secara mendalam perubahan pada sistem file di Lion. Khususnya, di sini Anda akan menemukan penjelasan tentang database SQLite baru.
Semoga ini membantu.
sumber