Em geral, todas as operações acontecem na RAM - os sistemas de arquivos são armazenados em cache. Há exceções a essa regra, mas esses casos bastante especiais geralmente surgem de requisitos bastante específicos. Portanto, até você começar a usar o cache, você não será capaz de dizer a diferença.
Outra coisa é que o desempenho depende muito do sistema de arquivos exato - alguns estão direcionando o acesso a grandes quantidades de arquivos pequenos, alguns são eficientes em transferências de dados em tempo real de e para grandes arquivos (captura / streaming de multimídia), alguns enfatizam a coerência dos dados e outros podem ser projetados para ter um pequeno espaço de memória / código.
De volta ao seu caso de uso: em apenas um ciclo você gera cerca de 20 novos processos, a maioria dos quais apenas cria um diretório / arquivo (note que ()
cria um sub-shell e find
spawns cat
para todos os jogos) - o gargalo na verdade não é o sistema de arquivos (e se o seu sistema usa ASLR e você não ter uma boa fonte rápida de entropia, o pool de aleatoriedade do seu sistema também se esgotou muito rápido). O mesmo vale para o FUSE escrito em Perl - não é a ferramenta certa para o trabalho.