Điều gì đã thay đổi chế độ xem danh sách Finder trong Lion để làm cho tính toán tất cả các kích thước của mình nhanh hơn theo cấp số nhân?


10

Kể từ khi Mac OS X xuất hiện, chúng tôi đã có thể yêu cầu Finder tính toán tất cả các kích thước để xác định tổng không gian kích thước tệp có thể đọc được trong mỗi thư mục cho cửa sổ Finder.

Trình tìm kiếm - chế độ xem danh sách - hiển thị tùy chọn xem - Tính toán tất cả các kích thước

Tôi đã kiểm tra kích thước chế độ xem danh sách các thư mục trên một số máy Mac, trong đó không có vấn đề gì nếu có SSD hay không, nhưng Lion rất nhanh trong việc tính toán kích thước Tôi tò mò liệu có một số cấu trúc dữ liệu bộ đệm mới hay không nếu Finder đang sử dụng thông tin siêu dữ liệu từ Spotlight hoặc cơ sở dữ liệu tương tự để tăng tốc tính toán này vô cùng.


1
Nơi mà bạn có được cửa sổ đó? Dựa trên nút "Sử dụng làm mặc định" ở phía dưới, nó trông giống như cửa sổ "Hiển thị tùy chọn xem" (<kbd> J </ kbd>), nhưng tôi không thể thấy bất cứ điều gì hiển thị ở phần dưới cùng.
Cajunluke

1
@CajunLuke bạn cần chuyển chế độ xem cửa sổ của mình sang danh sách trước khi mở cửa sổ "Hiển thị tùy chọn xem".
pdd

Câu trả lời:


3

Tôi đã không quan sát Lion để nhanh hơn trong việc tính toán kích thước thư mục (và gói / gói) trong lần đầu tiên nó tính kích thước trong một thư mục. Tuy nhiên, các tính toán tiếp theo trong cùng một thư mục dường như nhanh hơn nhiều.

Một phần của sự nhanh chóng nhận thức có thể là Finder sẽ hiển thị ngay các kích thước được tính toán trước đó bằng văn bản màu xám trong khi tính toán lại kích thước thư mục, thay vì hiển thị "-" cho đến khi được tính toán. Sau khi tính toán lại kích thước của thư mục, số sẽ cập nhật (nếu kích thước đã thay đổi) và chuyển sang màu đen.

Vì Finder có thể lưu trữ các kích thước thư mục được tính toán trước đó, nên có thể chỉ tính lại kích thước cho các thư mục đã thay đổi kể từ lần cuối được tính.


Tôi nghĩ rằng đây là vấn đề. Bộ nhớ đệm tốt hơn nhiều và kết quả một phần hoặc cũ được hiển thị tăng dần. Tôi không thể biết liệu thuật toán có được điều chỉnh để điền vào dữ liệu đang xem hay không, nhưng chỉ riêng bộ đệm đã là câu trả lời cho niềm vui của tôi với cách thức hoạt động trong thực tế.
bmike

Sau vài tháng quan sát kỹ điều này, bạn hoàn toàn chính xác. Cơ chế lưu trữ bây giờ tốt đến mức trên máy Mac mà tôi đã sử dụng một thời gian, dữ liệu này hầu như luôn luôn chính xác và tức thời. Chỉ trên một máy mac mới ngay sau khi cài đặt lại hoặc liên minh là tốc độ cũ đáng chú ý vì HĐH phải thu thập thông tin hoàn toàn.
bmike

7

Trước Lion, cột Kích thước tệp trong Finder.app sẽ hiển thị kích thước mỗi tệp yêu cầu trên đĩa cứng, không phải kích thước tệp chính xác. Ví dụ: các tệp 1 byte được hiển thị là 4 KB vì trên thực tế chúng chiếm tới 4 KB dung lượng trên hệ thống có định dạng HFS. Không có cách nào dễ dàng để xem kích thước tập tin thực tế của 1 byte, trừ mở File> Get Info (hoặc sử dụng một ứng dụng khác nhau, như Terminal.app và sau đó sử dụng ls -lsa, hoặc một sự thay thế Finder.app như TotalFinder.app ).

(Trở lại trong ngày, tôi báo cáo này như lỗi 8.926.275 trên bugreport.apple.com .)

Đối với Lion, hành vi này đã được sửa và cột Kích thước tệp bây giờ sẽ hiển thị kích thước tệp chính xác cho từng tệp thay vì kích thước được phân bổ trên đĩa cứng (dù sao cũng phụ thuộc vào hệ thống tệp).

Vì các kích thước này là cùng một số bạn nhận được từ lsnhị phân trong Terminal, nên chúng hiệu quả hơn nhiều để tính toán.


1
Đây là chi tiết tuyệt vời là tốt. Khi SSD trở nên phổ biến hơn và việc lưu trữ trở nên phức tạp hơn với các ảnh chụp nhanh, tôi cho rằng nó đã qua quá lâu do ngừng lo lắng về việc một tệp cụ thể của một tệp đang chiếm bao nhiêu dung lượng và chỉ lo lắng về kích thước logic của các tệp so với vật lý.
bmike

Tôi không hiểu điều này. Làm thế nào là hiệu quả hơn? Không phải là một stat(2)cuộc gọi duy nhất chịu trách nhiệm truy xuất cả hai số? Và ls(1)không hiển thị kích thước thực tế của các gói / gói / thư mục, vì vậy tôi không biết tại sao điều đó có liên quan.
Ken

@Ken lshiển thị kích thước tệp chỉ tốt cho các tệp thông thường. statcó thể làm tương tự cho một tập tin duy nhất. Quan điểm của tôi là công việc tăng thêm của Google mà bạn cần để tính toán các gói / gói / kích thước thư mục giờ chỉ cần cho các gói / gói / thư mục, không phải cho các tệp thông thường nữa.
Mathias Bynens

Mathias: Có, lshiển thị kích thước tệp cho các tệp thông thường, không phải gói (đó là những gì tôi đã nói). Nó làm điều này bằng cách gọi stat. "Công việc bổ sung" nào được yêu cầu cho các tệp thông thường trước đây? Một statcuộc gọi duy nhất trả về cả khối ( st_blocks) và byte ( st_size).
Ken

1

Tôi sẽ không ngạc nhiên nếu họ đang sử dụng siêu dữ liệu Spotlight để kích thước tệp bộ đệm. Nếu bạn đã sử dụng FSEvents để theo dõi tất cả các thay đổi trong hệ thống tệp và (có khả năng) Time Machine để sao lưu tất cả các thay đổi đó, thì chi phí tính toán và lưu trữ kích thước tệp tổng hợp là không đáng kể.


Tôi sẽ xem liệu tôi có thể khiến fs_events làm đổ đậu nếu đó là siêu dữ liệu hay không. Tôi thích đọc dữ liệu nổi bật - nhưng chưa có bằng chứng trực tiếp.
bmike

1

Bắt đầu với OS X Lion, Apple đã thêm một cơ sở dữ liệu SQLite mà HĐH sử dụng để theo dõi tệp trong các tính năng của hệ thống như Spotlight. Truy vấn từ cơ sở dữ liệu SQLite thay vì kiểm tra hệ thống tệp mỗi lần nhiều khả năng là nguyên nhân để cải thiện hiệu suất. Đánh giá OS X Lion của John Siracusa giải thích sâu hơn về những thay đổi đối với hệ thống tệp trong Lion. Đặc biệt, ở đây bạn sẽ tìm thấy một lời giải thích trên cơ sở dữ liệu SQLite mới.

Hi vọng điêu nay co ich.


Đây là một liên kết rất hay, tuy nhiên cơ sở dữ liệu SQLite xuất hiện trên tất cả các máy Mac của tôi để chỉ theo dõi các tài liệu có phiên bản là một tập hợp con nhỏ trong tổng số tệp trên ổ đĩa. Nếu bạn có thể tìm thấy một liên kết đến cơ sở dữ liệu lưu trữ tất cả các kích thước tệp, điều đó sẽ rất thú vị để nói rằng ít nhất vì hệ thống tệp đã là cơ sở dữ liệu để thực hiện việc này, phải không?
bmike
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.