Nhìn vào cá heo với Baloo một cách cụ thể, nó dường như tìm kiếm siêu dữ liệu của mọi tệp trong miền tìm kiếm của nó, ngay cả khi bạn đang thực hiện tìm kiếm tên tệp đơn giản. Khi tôi theo dõi các file.soquá trình, tôi thấy cuộc gọi đến lstat, getxattrvà getxattrmột lần nữa cho mỗi tập tin, và ngay cả đối với ..các mục. Những cuộc gọi hệ thống lấy siêu dữ liệu về các tập tin được lưu trữ trong một vị trí khác nhau từ tên tập tin (tên tập tin được lưu trữ trong nội dung thư mục, nhưng các siêu dữ liệu đang trong inode ). Truy vấn siêu dữ liệu của một tệp nhiều lần là rẻ vì dữ liệu sẽ nằm trong bộ đệm của đĩa, nhưng có thể có một sự khác biệt đáng kể giữa truy vấn siêu dữ liệu và không truy vấn siêu dữ liệu.
findthông minh hơn nhiều. Nó cố gắng tránh các cuộc gọi hệ thống không cần thiết. Nó sẽ không gọi getxattrvì nó không tìm kiếm dựa trên các thuộc tính mở rộng. Khi đi ngang qua một thư mục, nó có thể cần phải gọi lstatcác tên tệp không khớp bởi vì đó có thể là thư mục con để tìm kiếm đệ quy ( lstatlà cuộc gọi hệ thống trả về siêu dữ liệu tệp bao gồm loại tệp như thông thường / thư mục / symlink / Nott). Tuy nhiên findcó một tối ưu hóa: nó biết có bao nhiêu thư mục con mà thư mục có từ số lượng liên kết của nó và nó dừng cuộc gọi lstatmột khi nó biết rằng nó đi qua tất cả các thư mục con. Cụ thể, trong một thư mục lá (một thư mục không có thư mục con),findchỉ kiểm tra tên, không phải siêu dữ liệu. Hơn nữa, một số hệ thống tệp giữ một bản sao của loại tệp trong mục nhập thư mục để findthậm chí không cần gọi lstatnếu đó là thông tin duy nhất mà nó cần.
Nếu bạn chạy findvới các tùy chọn yêu cầu kiểm tra siêu dữ liệu, nó sẽ thực hiện nhiều lstatcuộc gọi hơn , nhưng nó vẫn không thực hiện lstatcuộc gọi trên một tệp nếu không cần thông tin (ví dụ: vì tệp bị loại trừ bởi một điều kiện trước đó khớp với tên).
Tôi nghi ngờ rằng các công cụ tìm kiếm GUI khác phát minh lại findbánh xe cũng kém thông minh hơn tiện ích dòng lệnh đã trải qua nhiều thập kỷ tối ưu hóa. Ít nhất, cá heo đủ thông minh để sử dụng cơ sở dữ liệu định vị nếu bạn tìm kiếm trên khắp mọi nơi, (với giới hạn không rõ ràng trong giao diện người dùng rằng kết quả có thể bị lỗi thời).