É uma boa ideia fazer upload de vários arquivos em paralelo?

2

Estou desenvolvendo um aplicativo para fazer upload de vários arquivos grandes para um servidor de uma rede doméstica.

Eu posso selecionar qualquer uma das seguintes estratégias:

  1. Carregue cada arquivo em sequência.
  2. Carregue todos eles em paralelo.

qual é mais rápido, observando que o gargalo é a rede doméstica.

    
por mans 17.01.2018 / 17:54

3 respostas

-1

No seu caso, o envio em sequência pode ser necessário.

O hardware do consumidor nem sempre é capaz de executar várias conexões simultâneas e pode parar / travar. Se você limitar a quantidade de arquivos simultâneos, o upload paralelo sempre será mais rápido.

O motivo é o seguinte:

Quando você faz uma transferência usando TCP / IP, acontece o seguinte:

Primeiro um pacote é enviado para o destino, e a conexão espera que um pacote de confirmação retorne antes de enviar o próximo pacote.

Em seguida, envia 2 pacotes e aguarda a confirmação. Em seguida, ele envia 3, depois 4, depois 5, etc ... Ele continua aumentando a quantidade de pacotes até que o pacote de confirmação retornado mostre que nem todos os pacotes foram recebidos. Quando isso acontece, a velocidade é reduzida e tentada novamente.

Costumava acontecer que, quando o acima acontecesse, começaria em 1 novamente e aumentaria a velocidade. A nova tecnologia reduz a quantidade de pacotes primeiro e tenta novamente, aumentando gradualmente a velocidade.

Dado que com tráfego adicional, a largura de banda para essa transferência pode ser reduzida, é muito provável que a velocidade total não seja mantida o tempo todo.

Se 2 ou mais arquivos estiverem sendo transferidos ao mesmo tempo, a largura de banda disponível será utilizada com mais eficiência. Se uma única transferência parar, e a velocidade for significativamente reduzida, haverá um momento em que a largura de banda será liberada e não será usada por essa transferência. Outros processos podem consumir essa largura de banda, tornando a transferência ainda mais lenta. Mas, se dois ou mais arquivos forem transferidos, é mais provável que a velocidade combinada seja mais ou menos mantida da mesma forma, o que significa que, mesmo que uma das transferências tenha diminuído, a outra transferência provavelmente terá essa largura de banda remanescente.

    
por 17.01.2018 / 18:43
4

O upload em paralelo geralmente ajudará a chegar a todos eles mais rápido, porque se um de seus fluxos TCP de upload ficar parado por qualquer motivo, seus outros fluxos TCP de upload poderão impedir que essa largura de banda seja desperdiçada. / p>     

por 17.01.2018 / 23:02
1

Teoricamente falando, a resposta seria:

Six of one; half-dozen of another.

O motivo é que, se você atingir um gargalo de largura de banda, não importa se você está enviando arquivos um de cada vez ou vários ao mesmo tempo; você está limitado pela largura de banda.

O que altera a resposta é se há um limite de velocidade imposto para conexões em um lado. Isso é visto em alguns servidores de conteúdo regulares, bem como aqueles que usam o protocolo Torrenting.

Nesse caso, se o limite de velocidade imposto for menor do que a largura de banda máxima no lado da casa, faria sentido transferir vários arquivos, até o valor para limitar a largura de banda no lado de casa.

    
por 19.01.2018 / 00:12