Como eu acelero arquivos mapeados na memória pela rede? [fechadas]

1

O mapeamento de memória de um arquivo em um compartilhamento de arquivos SMB faz com que ele seja transferido em sua totalidade antes que a chamada retorne. Para arquivos grandes, isso faz com que o aplicativo seja bloqueado por um longo período de tempo. Como faço para corrigir isso?

"Use X em vez de SMB" é uma resposta válida.

Editar: qualquer aplicativo, qualquer arquivo. Eu não estou tentando resolver um caso específico. O mapeamento de memória de um arquivo é uma maneira de abri-lo para que ele apareça no aplicativo como parte da memória de trabalho - você acessa o arquivo como se fosse um array.

    
por Ansis Māliņš 27.08.2011 / 11:57

1 resposta

2

Este é um artefato da implementação do sistema operacional mmap , não tem nada a ver com o protocolo de rede em uso (por mais que eu goste de trapacear em SMB ...). O SMB é mais do que capaz de ler trechos aleatórios de um arquivo, portanto, não há motivo para que ele não possa ler trechos conforme solicitado. Eu não tenho um servidor SMB acessível neste momento para verificá-lo, mas eu tenho um servidor NFS, e eu apenas tentei mmap um arquivo de 1.7GB e ele retornou instantaneamente, então, no mínimo, certamente não é t alguma limitação inerente ao conceito de mmap.

    
por 28.08.2011 / 00:21