Infelizmente, tenho um aplicativo que coloca milhões de arquivos em um diretório simples (sem subdiretórios)
Se eu executar um ls ou um find no diretório fornecido, ls ou find consumirá vários Gigabytes de RAM.
Eu acho que o motivo é que ls e find lê todos os arquivos de um diretório na RAM.
Minha pergunta é.
Existe alguma maneira de listar os arquivos deste diretório sem consumir tanta memória?
Qualquer solução (opções especiais / comandos diferentes / programa C para compilar / um módulo python especial) seria interessante.
Há:
O
ls
comando não apenas lê os nomes dos arquivos, mas tambémfstat()
s todos os arquivos. Se você usar aopendir() / readdir() / close()
sequência, você se sairá muito melhor.Além disso, os recursos necessários para listar um diretório também são função do sistema de arquivos:
XFS
usa muito menos queext4
.