Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 3255|Відповідь: 2

[Джерело] .NET/C# High performance об'єднує кілька файлів в один файл

[Копіювати посилання]
Опубліковано 2024-2-14 12:04:26 | | | |
Вимоги: При використанні великих файлів для завантаження частинами, бекенд повинен об'єднувати різні блоки в один файл по порядку, або при розрізі архівного файлу об'єднувати вирізані файли з вихідним файлом.

Linux використовує розділення розділених файлів
https://www.itsvse.com/thread-10716-1-1.html

Спочатку підготуйте два файли по 100M для тестування з такою командою:

Windows створює файл вказаного розміру
https://www.itsvse.com/thread-10732-1-1.html

Код виглядає так:


Було протестовано два різні сценарії злиття. Як показано нижче:



Почніть тестування з VS 2022 debug -> Profiler -> позначте ".NET Object Allocation Trace":



merge1 загальний розмір: 16 778 034, merge2 загальний розмір: 164 270,Загальний розподіл показує, що merge1 у 102 рази більший за merge2, і чим більший, тим гірша продуктивність

Використовуйте PerfView для перегляду аналізу стеків CPU та мережевих мем-стеків купи GC окремо, як показано на наступному рисунку:



Зауваження:Inc% - Інклюзивна вартість виражається у відсотках від загальної вартості для всіх зразків(100% для ROOT вузлів). Це можна відсортувати за ним.





Попередній:Windows створює файл вказаного розміру
Наступний:Вступ і різниця між компіляцією JIT та AOT у .NET
 Орендодавець| Опубліковано 2024-2-14 12:09:30 |
Тестуйте з VS 2022 Debug -> Performance Profiler -> позначте "Використання пам'яті":

  • merge1 займає 808 МБ при виконанні
  • merge2 займає 12 МБ при виконанні




Якщо метод merge2 виконується окремо, програма запускається на 6 МБ і завжди займає 6 МБ під час виконання функції та після завершення.
 Орендодавець| Опубліковано 2025-1-1 10:20:06 |
Оптимізуйте стиль письма

Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com