Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 3255|Atsakyti: 2

[Šaltinis] .NET/C# didelis našumas sujungia kelis failus į vieną failą

[Kopijuoti nuorodą]
Publikuota: 2024-2-14 12:04:26 | | | |
Reikalavimai: Kai naudojate didelius failus įkelti dalimis, užpakalinė sistema turi sujungti skirtingus blokus į vieną failą eilės tvarka arba, pjaustant archyvo failą, sujungti iškirptus failus į šaltinio failą.

"Linux" naudoja padalintų failų pjaustymo padalijimus
https://www.itsvse.com/thread-10716-1-1.html

Pirmiausia paruoškite du 100 milijonų failus testavimui naudodami šią komandą:

Windows sukuria nurodyto dydžio failą
https://www.itsvse.com/thread-10732-1-1.html

Kodas yra toks:


Buvo išbandyti du skirtingi sujungimo scenarijai. Kaip parodyta žemiau:



Pradėkite testavimą naudodami VS 2022 derinimą -> Profiler -> pažymėkite ".NET Object Allocation Trace":



merge1 bendras dydis: 16,778,034, merge2 bendras dydis: 164,270,Bendras paskirstymas rodo, kad merge1 yra 102 kartus didesnis nei merge2, ir kuo jis didesnis, tuo prastesnis našumas

Naudokite "PerfView", kad atskirai peržiūrėtumėte procesoriaus rietuvių ir "GC Heap Net Mem Stacks" analizę, kaip parodyta toliau pateiktame paveikslėlyje:



Pastaba:Inc% – įskaičiuotos išlaidos išreiškiamos visų pavyzdžių bendros kainos procentais(100% ROOT mazgams). Jį galima rūšiuoti pagal jį.





Ankstesnis:Windows sukuria nurodyto dydžio failą
Kitą:Įvadas ir skirtumas tarp JIT ir AOT kompiliavimo .NET
 Savininkas| Publikuota: 2024-2-14 12:09:30 |
Testas su VS 2022 Debug -> Performance Profiler -> pažymėkite "Atminties naudojimas":

  • merge1 užima 808 MB, kai vykdomas
  • merge2 užima 12 MB, kai vykdomas




Jei merge2 metodas vykdomas vienas, programa paleidžia 6 MB ir visada užima 6 MB funkcijos vykdymo metu ir užbaigus.
 Savininkas| Publikuota: 2025-1-1 10:20:06 |
Optimizuokite rašymo stilių

Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com