Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 3255|Répondre: 2

[Source] .NET/C# Haute performance fusionne plusieurs fichiers en un seul fichier

[Copié le lien]
Publié le 14-02-2024 à 12:04:26 | | | |
Exigences : Lors de l’utilisation de gros fichiers pour le téléverser en blocs, le backend doit fusionner différents blocs en un seul fichier dans l’ordre, ou, lors de la coupe du fichier d’archive, fusionner les fichiers coupés dans le fichier source.

Linux utilise des splits de coupe de fichiers
https://www.itsvse.com/thread-10716-1-1.html

D’abord, préparez deux fichiers de 100M pour les tests, avec la commande suivante :

Windows crée un fichier de la taille spécifiée
https://www.itsvse.com/thread-10732-1-1.html

Le code est le suivant :


Deux scénarios de fusion différents ont été testés. Comme montré ci-dessous :



Commencez les tests avec le débogage VS 2022 -> Profiler -> cochez « .NET Object Allocation Trace » :



La taille totale de la fusion1 est de : 16 778 034, la taille totale de la fusion2 est de : 164 270,L’allocation totale montre que merge1 est 102 fois plus grande que merge2, et plus elle est importante, moins la performance est bonne

Utilisez PerfView pour visualiser séparément les piles CPU et les piles GC Heap Net Mem Stacks, comme montré dans la figure suivante :



Remarque:Inc % - Le coût inclus est exprimé en pourcentage du coût total pour tous les échantillons(100 % pour les nœuds ROOT). On peut trier cela par cette méthode.





Précédent:Windows crée un fichier de la taille spécifiée
Prochain:Introduction et différence entre la compilation JIT et AOT dans .NET
 Propriétaire| Publié le 14-02-2024 à 12:09:30 |
Testez avec VS 2022 Debug -> Performance Profiler -> cochez « Utilisation mémoire » :

  • merge1 prend 808 Mo lors de son exécution
  • merge2 prend 12 Mo lors de son exécution




Si la méthode merge2 est exécutée seule, le programme démarre 6 Mo et prend toujours 6 Mo pendant l’exécution de la fonction et après l’achèvement.
 Propriétaire| Publié le 2025-1-1 10:20:06 |
Optimisez le style d’écriture

Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com