Bộ đệm hệ thống tập tin làm gì trong Windows 7?


16

Các chẩn đoán tại sao Git là quá chậm bài viết có mục thú vị này trong đó:

Kích hoạt bộ đệm hệ thống tập tin

Lớp hệ thống tập tin của Windows vốn đã khác với Linux '(trong đó quyền truy cập hệ thống tập tin của Git được tối ưu hóa). Như một giải pháp thay thế, Git cho Windows cung cấp bộ đệm hệ thống tập tin giúp tăng tốc hoạt động trong nhiều trường hợp, sau khi "khởi động" ban đầu. Bạn có thể kích hoạt bộ đệm lưu trữ hệ thống tệp trên mỗi kho lưu trữ:

git config core.fscache true

Nếu tôi kích hoạt tùy chọn này trong Git, điều gì thực sự thay đổi? Bộ đệm của hệ thống tập tin trong Windows 7 trông như thế nào và bộ nhớ cache nào đang được lưu trữ? "Khởi động ban đầu" đòi hỏi gì?

Câu trả lời:


10

Đây là những gì git config --helpnói:

core.fscache
Cho phép lưu thêm dữ liệu hệ thống tệp cho một số thao tác.

Git cho Windows sử dụng điều này để đọc hàng loạt và lưu trữ dữ liệu lstat của toàn bộ thư mục (thay vì thực hiện tệp lstat theo tệp).

Thay vì thực hiện nhiều yêu cầu hệ thống tệp, git sẽ chỉ thực hiện một yêu cầu để nhận thông tin về tất cả các tệp trong thư mục.

Có thể tìm thấy nhiều mô tả kỹ thuật hơn trong cam kết được giới thiệu fscache:
Win32: thêm bộ đệm bên dưới các triển khai lstat và dirent của mingw

Kiểm tra trạng thái cây công việc khá chậm trên Windows, do giả lập lstat chậm (git gọi lstat một lần cho mỗi tệp trong chỉ mục). API hệ điều hành Windows dường như tốt hơn nhiều trong việc quét trạng thái của toàn bộ thư mục so với kiểm tra các tệp đơn lẻ.

Thêm một triển khai lstat sử dụng bộ đệm cho dữ liệu lstat. Bộ nhớ cache đọc toàn bộ thư mục cha và thêm nó vào bộ đệm. Các cuộc gọi lstat tiếp theo cho cùng một thư mục được phục vụ trực tiếp từ bộ đệm.

Đồng thời triển khai opendir / readdir / closir để họ tạo và sử dụng danh sách thư mục trong bộ đệm.

Bộ đệm không theo dõi các thay đổi của hệ thống tệp và không cắm vào bất kỳ API tệp sửa đổi nào, do đó, nó phải được kích hoạt rõ ràng cho các hàm git không sửa đổi bản sao làm việc.

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.