Olhando especificamente para o Dolphin com o Baloo, parece procurar os metadados de cada arquivo em seu domínio de pesquisa, mesmo se você estiver fazendo uma pesquisa simples de nome de arquivo. Quando eu rastrear o file.so
processo, eu vejo as chamadas para lstat
, getxattr
e getxattr
mais uma vez para cada arquivo, e até mesmo para ..
entradas. Essas chamadas do sistema recuperam metadados sobre o arquivo 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, pois os dados estariam no cache do disco, mas pode haver uma diferença significativa entre consultar os metadados e não os metadados.
find
é muito mais inteligente. Ele tenta evitar chamadas desnecessárias ao sistema. Ele não liga getxattr
porque não pesquisa com base em atributos estendidos. Ao percorrer um diretório, pode ser necessário chamar lstat
nomes de arquivos não correspondentes, porque esse pode ser um subdiretório para pesquisar recursivamente ( lstat
é a chamada do sistema que retorna os metadados do arquivo, incluindo o tipo de arquivo como regular / directory / symlink /…). No entanto, find
possui uma otimização: ele sabe quantos subdiretórios um diretório possui a partir de sua contagem de links e para de chamar lstat
quando sabe que percorreu todos os subdiretórios. Em particular, em um diretório folha (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 do diretório, para que find
nem precise ligar lstat
se essa é a única informação necessária.
Se você executar find
com opções que exigem a verificação dos metadados, ele fará mais lstat
chamadas, mas ainda não fará uma lstat
chamada em um arquivo se não precisar das informações (por exemplo, porque o arquivo foi excluído por uma condição anterior). correspondente no nome).
Suspeito que outras ferramentas de pesquisa da GUI que reinventem a find
roda sejam igualmente menos inteligentes que o utilitário de linha de comando que passou por décadas de otimização. O Dolphin, pelo menos, é inteligente o suficiente 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 interface do usuário de que os resultados podem estar desatualizados).