Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 3255|Resposta: 2

[Fonte] .NET/C# Alto desempenho funde múltiplos arquivos em um único arquivo

[Copiar link]
Postado em 14-02-2024 12:04:26 | | | |
Requisitos: Ao usar arquivos grandes para enviar em blocos, o backend precisa mesclar diferentes blocos em um único arquivo em ordem, ou, ao cortar o arquivo de arquivo, mesclar os arquivos de corte no arquivo de origem.

O Linux usa divisões de corte de arquivos divididos
https://www.itsvse.com/thread-10716-1-1.html

Primeiro, prepare dois arquivos de 100M para teste, com o seguinte comando:

O Windows cria um arquivo do tamanho especificado
https://www.itsvse.com/thread-10732-1-1.html

O código é o seguinte:


Dois cenários diferentes de fusão foram testados. Como mostrado abaixo:



Comece os testes com a depuração VS 2022 -> Profiler -> marque ".NET Object Allocation Trace":



Tamanho total da merge1 é: 16.778.034, Merge2 tamanho total é: 164.270,A alocação total mostra que merge1 é 102 vezes maior que merge2, e quanto maior ela é, pior o desempenho

Use o PerfView para visualizar separadamente as análises de CPU Stacks e GC Heap Net Mem Stacks, como mostrado na figura a seguir:



Comentário:Inc% - Custo inclusivo é expresso como uma porcentagem do custo total para todas as amostras(100% para nós ROOT). Pode ser resolvido por ele.





Anterior:O Windows cria um arquivo do tamanho especificado
Próximo:Introdução e diferença entre compilação JIT e AOT em .NET
 Senhorio| Publicado em 14-02-2024 12:09:30 |
Teste com o VS 2022 Debug -> Performance Profiler -> marque "Uso de Memória":

  • merge1 consome 808MB quando executado
  • merge2 consome 12MB quando executado




Se o método merge2 for executado sozinho, o programa inicia 6MB e sempre ocupa 6MB durante a execução da função e após a conclusão.
 Senhorio| Postado em 2025-1-1 10:20:06 |
Otimize o estilo de escrita

Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com