Olhando especificamente para o Dolphin com Baloo, parece procurar os metadados de todos os arquivos em seu domínio de pesquisa, mesmo que você esteja fazendo uma simples pesquisa de nome de arquivo. Quando eu rastreio o processo file.so
, vejo as chamadas para lstat
, getxattr
e getxattr
novamente para cada arquivo e até mesmo para ..
entradas. Essas chamadas de sistema recuperam metadados sobre o arquivo que é armazenado em um local diferente do nome do arquivo (o nome do arquivo é armazenado no conteúdo do diretório, mas os metadados estão no inode ). Consultar os metadados de um arquivo várias vezes é barato, já que os dados estariam no cache de disco, mas pode haver uma diferença significativa entre consultar os metadados e não consultar os metadados.
find
é muito mais inteligente. Ele tenta evitar chamadas desnecessárias do sistema. Não chamará getxattr
porque não pesquisa com base em atributos estendidos. Quando estiver percorrendo um diretório, pode ser necessário chamar lstat
em nomes de arquivo não correspondentes, pois pode ser um subdiretório para pesquisar recursivamente ( lstat
é a chamada do sistema que retorna metadados de arquivo incluindo o tipo de arquivo como regular / directory / symlink /…). No entanto, find
tem uma otimização: ele sabe quantos subdiretórios um diretório possui de seu contagem de links , e ele pára de chamar lstat
uma vez que ele saiba que ele percorreu todos os subdiretórios. Em particular, em um diretório de folhas (um diretório sem subdiretórios), find
apenas verifica os nomes, não os metadados. Além disso, alguns sistemas de arquivos mantêm uma cópia do tipo de arquivo na entrada de diretório, de modo que find
nem precise chamar lstat
se essa for a única informação de que precisa.
Se você executar find
com opções que exigem a verificação dos metadados, ele produzirá mais lstat
chamadas, mas ainda não fará uma chamada de lstat
em um arquivo se não precisar das informações (por exemplo, porque o arquivo é excluído por uma condição anterior correspondente ao nome).
Eu suspeito que outras ferramentas de busca da GUI que reinventam a roda find
são similarmente menos inteligentes do que o utilitário de linha de comando que passou por décadas de otimização. O Dolphin, pelo menos, é inteligente o bastante para usar o banco de dados de localização, se você pesquisar “em todos os lugares” (com a limitação que não está clara na IU de que os resultados podem estar desatualizados).