exFAT and the rest of the FAT family of file systems do not use indexes for file names, unlike NTFS, which uses B-trees for file searching. When a file is accessed, the directory must be sequentially searched until a match is found. For file names shorter than 16 characters in length, one file name record is required but the entire file is represented by three 32-byte directory records. This is called a directory file set, and a 256 MB sub-directory can hold up to 2,796,202 file sets. (If files have longer names, this number will decrease, but this is the maximum based on the minimal three-record file set.) To help improve the sequential searching of the directories (including the root) a hash value of the file name is derived for each file and stored in the directory record. When searching for a file, the file name is first converted to upper case using the upcase table (file names are case-insensitive) and then hashed using a proprietary patented algorithm into a 16-bit (2-byte) hash value. Each record in the directory is searched by comparing the hash value. When a match is found, the file names are compared to ensure that the proper file was located in case of hash collisions. This improves performance because only 2 bytes have to be compared for each file. This significantly reduces the CPU load because most file names are more than 2 characters (bytes) in size and virtually every comparison is performed on only 2 bytes at a time until the intended file is located.
fvf bagi bagi char pb
2ff7e9595c
Comentarios