Quantos segmentos posso executar ao usar uma CPU Intel Core Duo para acelerar o download de dados em massa do Amazon S3 em um aplicativo personalizado?

0

Como posso descobrir o número máximo de threads que posso usar? Eu sou novo em programação, então estou tentando descobrir o que preciso saber. Eu tenho 950 GB de arquivos para download no Amazon S3. Eu estava pensando que eu poderia usar dois threads, cada um fazendo o download de metade desse valor, rodando em paralelo.

Espero acelerar o download de dados em massa do Amazon S3 ao multithreading do meu aplicativo, mas seria bom saber primeiro se meu computador ainda suporta multithreading.

Especificações do computador:

  • Modelo: MacBook (13 polegadas, meados de 2010, A1342)
  • Processador: 2.4 GHz Intel Core Duo
  • Memória: 8 GB 1067 MHz DDR3
  • Software: MacOS Sierra 10.12.6

O processador é muito antigo e foi descontinuado, por isso não suporta hyperthreading da Intel. Não tenho certeza se é bom com multithreading. Mas se ele puder oferecer suporte a multithreading, quantos threads ele suportará, e haverá um impacto no desempenho se eu usar muitos threads?

Por favor, corrija-me se estiver errado, mas eu li que um núcleo não hyperthreading pode suportar apenas 1 thread , então eu estou pensando que talvez o meu processador possa suportar até 2 threads, então qualquer outro thread depois disso teria um efeito desprezível.

    
por briennakh 10.06.2018 / 19:05

2 respostas

2

Existem várias suposições falsas na sua pergunta, então deixe-me esclarecer aqui:

  1. O multithread é possível até mesmo em CPUs single-core. A execução apenas é dividida no tempo para que você tenha 1 thread ativo em qualquer momento, mas a execução geral dos threads é paralela.
  2. Multithreading não é equivalente a acelerar. Se ingenuamente projetado, o aplicativo multithreading é sempre mais lento que o aplicativo single-threaded por dezenas ou até centenas de vezes.
  3. O download de redes externas em 99% dos casos não depende de multithreading. Pode valer a pena conferir downloads HTTP de vários intervalos, como foi implementado em aplicativos como NetAnts, ReGet e outros. Era do modem. No entanto, não há garantia de que o download de vários intervalos seja mais rápido do que o normal, devido a várias políticas de rede e servidores envolvidos.

Então, afinal de contas. Você definitivamente precisa coletar métricas no seu aplicativo: o que é a operação mais lenta? E, em seguida, reprojetá-lo para obter mais velocidade.

    
por 10.06.2018 / 20:15
1

How might I find out the maximum number of threads I can use?

O Intel Core Duo tem dois segmentos devido a ter um processador de segmento único de 2 núcleos. Cada núcleo tem a capacidade de um único segmento.

But if it can support multithreading, how many threads can it support, and would there be an impact on performance if I use too many threads?

Ele suporta dois tópicos.

so I'm thinking maybe my processor can support up to 2 threads, then any more threads after that would have negligible effect.

É incapaz de lidar com mais de 2 segmentos. Seu aplicativo multi-threaded teria apenas dois threads, pois você pode gerar apenas 2 threads devido ao hardware.

    
por 10.06.2018 / 19:52