Saya membaca sesuatu yang mirip dengan kemarin mengenai OSX dan ini adalah kompresi sistem file - Pada dasarnya jawabannya berkisar pada apa yang ingin Anda kompres - dalam contoh ini dia berbicara tentang data "FAT"; struktur file, properti, metadata dll yang ketika disimpan bersama dapat dikompres untuk menghemat ruang dan dibaca ke dalam CPU lebih cepat daripada mencari kepala di semua tempat untuk menemukan data untuk setiap file ...
Tetapi kompresi bukan hanya tentang menghemat ruang disk. Ini juga merupakan contoh klasik dari perdagangan siklus CPU untuk penurunan latensi dan bandwidth I / O. Selama beberapa dekade terakhir, kinerja CPU menjadi lebih baik (dan sumber daya komputasi lebih banyak — lebih banyak dari itu nanti) dengan kecepatan yang jauh lebih cepat daripada kinerja disk yang meningkat. Waktu pencarian hard disk modern dan penundaan rotasi masih diukur dalam milidetik. Dalam satu milidetik, CPU 2 GHz melewati dua juta siklus. Dan tentu saja, masih ada waktu transfer data aktual untuk dipertimbangkan.
Memang, beberapa level caching di seluruh OS dan perangkat keras bekerja keras untuk menyembunyikan penundaan ini. Tetapi bit-bit itu harus keluar dari disk di beberapa titik untuk mengisi cache itu. Kompresi berarti lebih sedikit bit yang harus ditransfer. Mengingat sumber daya CPU yang hampir lucu pada multi-core Mac modern dalam penggunaan normal, total waktu yang diperlukan untuk mentransfer muatan terkompresi dari disk dan menggunakan CPU untuk mendekompres isinya ke dalam memori biasanya masih jauh lebih sedikit daripada waktu diperlukan untuk mentransfer data dalam bentuk yang tidak terkompresi.
Itu menjelaskan manfaat kinerja potensial dari mentransfer lebih sedikit data, tetapi penggunaan atribut yang diperluas untuk menyimpan konten file sebenarnya dapat membuat segalanya lebih cepat, juga. Itu semua ada hubungannya dengan lokalitas data.
Jika ada satu hal yang memperlambat hard disk lebih dari mentransfer sejumlah besar data, itu memindahkan kepalanya dari satu bagian disk ke yang lain. Setiap gerakan berarti waktu bagi kepala untuk mulai bergerak, lalu berhenti, lalu memastikan bahwa ia diposisikan dengan benar di atas lokasi yang diinginkan, kemudian tunggu disk pemintalan untuk meletakkan bit yang diinginkan di bawahnya. Ini semua adalah bagian yang nyata, fisik, bergerak, dan menakjubkan bahwa mereka menari secepat dan seefisien yang mereka lakukan, tetapi fisika memiliki batasnya. Gerakan ini adalah pembunuh kinerja nyata untuk penyimpanan rotasi seperti hard disk.
Format volume HFS + menyimpan semua informasi tentang file — metadata — di dua lokasi utama pada disk: File Katalog, yang menyimpan tanggal file, izin, kepemilikan, dan sejumlah hal lain, dan File Atribut, yang menyimpan "garpu nama" . "
Atribut diperluas di HFS + diimplementasikan sebagai garpu bernama dalam File Atribut. Tetapi tidak seperti garpu sumber daya, yang bisa sangat besar (hingga ukuran file maksimum yang didukung oleh sistem file), atribut diperluas di HFS + disimpan "inline" di File Atribut. Dalam praktiknya, ini berarti batas sekitar 128 byte per atribut. Tetapi itu juga berarti bahwa kepala disk tidak perlu melakukan perjalanan ke bagian lain dari disk untuk mendapatkan data aktual.
Seperti yang dapat Anda bayangkan, blok disk yang menyusun file Katalog dan Atribut sering diakses, dan oleh karena itu lebih mungkin daripada kebanyakan berada di cache di suatu tempat. Semua ini bersekongkol untuk membuat penyimpanan file yang lengkap, termasuk metadata dalam datanya, dalam Katalog terstruktur-B-pohon dan Atribut mengarsipkan kemenangan kinerja secara keseluruhan. Bahkan muatan delapan byte yang membengkak menjadi 25 byte bukanlah masalah, asalkan masih kurang dari ukuran blok alokasi untuk penyimpanan data normal, dan selama itu semua sesuai dalam simpul B-tree dalam File Atribut yang OS harus membaca secara keseluruhan.
Ada kontribusi signifikan lain untuk mengurangi jejak cakram Snow Leopard (misalnya, penghapusan pelokalan yang tidak perlu dan file "designable.nib") tetapi kompresi HFS + sejauh ini merupakan yang paling menarik secara teknis.