Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 3255|Antwoord: 2

[Bron] .NET/C# Hoge prestaties voegen meerdere bestanden samen tot één bestand

[Link kopiëren]
Geplaatst op 2024-2-14 12:04:26 | | | |
Vereisten: Bij het gebruik van grote bestanden om in chunks te uploaden, moet de backend verschillende blokken in één bestand in volgorde samenvoegen, of bij het knippen van het archiefbestand de verwijderde bestanden samenvoegen in het bronbestand.

Linux gebruikt split-file cutting splits
https://www.itsvse.com/thread-10716-1-1.html

Bereid eerst twee 100M-bestanden voor voor testen, met het volgende commando:

Windows maakt een bestand aan van de opgegeven grootte
https://www.itsvse.com/thread-10732-1-1.html

De code is als volgt:


Twee verschillende samenvoegingsscenario's werden getest. Zoals hieronder getoond:



Begin met testen met VS 2022 debug -> Profiler -> vink ".NET Object Allocation Trace" aan:



MERGE1 totale grootte is: 16.778.034, merge2 totale grootte is: 164.270,De totale toewijzing toont aan dat merge1 102 keer groter is dan merge2, en hoe groter het is, hoe slechter de prestatie is

Gebruik PerfView om CPU-stacks en GC Heap Net Mem Stacks-analyse afzonderlijk te bekijken, zoals weergegeven in de volgende figuur:



Opmerking:Inc% - Inc kosten worden uitgedrukt als een percentage van de totale kosten voor alle monsters(100% voor ROOT-knooppunten). Het kan erop worden gesorteerd.





Vorig:Windows maakt een bestand aan van de opgegeven grootte
Volgend:Introductie en verschil tussen JIT- en AOT-compilatie in .NET
 Huisbaas| Geplaatst op 2024-2-14 12:09:30 |
Test met VS 2022 Debug -> Performance Profiler -> vink "Geheugengebruik" aan:

  • merge1 neemt 808MB in beslag wanneer het wordt uitgevoerd
  • merge2 neemt 12MB in beslag wanneer het wordt uitgevoerd




Als de merge2-methode alleen wordt uitgevoerd, start het programma 6MB en neemt het altijd 6MB in beslag tijdens de uitvoering van de functie en na voltooiing.
 Huisbaas| Geplaatst op 1-1-2025 10:20:06 |
Optimaliseer de schrijfstijl

Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com