Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 3255|Odpowiedź: 2

[Źródło] .NET/C# Wysoka wydajność łączy wiele plików w jeden plik

[Skopiuj link]
Opublikowano 2024-2-14 12:04:26 | | | |
Wymagania: Przy przesyłaniu dużych plików w kawałkach, backend musi łączyć różne bloki w jeden plik w kolejności, lub przy cięciu pliku archiwalnego łączyć pliki wycięte z plikiem źródłowym.

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

Najpierw przygotuj dwa pliki 100M do testowania, wykonując następujące polecenie:

Windows tworzy plik o określonym rozmiarze
https://www.itsvse.com/thread-10732-1-1.html

Kod jest następujący:


Przetestowano dwa różne scenariusze połączenia. Jak pokazano poniżej:



Rozpocznij testowanie za pomocą debugowania VS 2022 -> Profiler -> zaznacz ".NET Object Allocation Trace":



Łączny rozmiar merge1 to: 16 778 034, merge2 całkowity rozmiar: 164 270,Całkowita alokacja pokazuje, że merge1 jest 102 razy większa niż merge2, a im większy, tym gorsza wydajność

Użyj PerfView do osobnego przeglądania stosów CPU i GC Heap Net Mem stosów, jak pokazano na poniższym rysunku:



Uwaga:In% - Koszt włącznie wyrażany jest jako procent całkowitego kosztu dla wszystkich próbek(100% dla węzłów korzeniowych). Można to sortować według niej.





Poprzedni:Windows tworzy plik o określonym rozmiarze
Następny:Wprowadzenie i różnice między kompilacją JIT i AOT w .NET
 Ziemianin| Opublikowano 2024-2-14 o 12:09:30 |
Testuj z VS 2022 Debug -> Performance Profiler -> zaznacz "Memory Usage":

  • merge1 zajmuje 808MB po uruchomieniu
  • merge2 zajmuje 12MB po uruchomieniu




Jeśli metoda merge2 jest wykonywana samodzielnie, program uruchamia się na 6MB i zawsze zajmuje 6MB podczas wykonywania funkcji oraz po jej zakończeniu.
 Ziemianin| Opublikowano 1.01.2025 1. 10:20:06 |
Optymalizuj styl pisania

Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com