Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 3255|Отговор: 2

[Източник] .NET/C# Висока производителност обединява множество файлове в един файл

[Копирай линк]
Публикувано на 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 Heap Net Mem стекове отделно, както е показано на следната фигура:



Забележка:Inc% - Включващата цена се изразява като процент от общата цена за всички проби(100% за ROOT възлите). Може да се сортира по него.





Предишен:Windows създава файл с посочения размер
Следващ:Въведение и разлика между компилацията на JIT и AOT в .NET
 Хазяин| Публикувано на 2024-2-14 12:09:30 |
Тест с VS 2022 Debug -> Performance Profiler -> отбележи "Memory Usage":

  • merge1 заема 808MB при изпълнение
  • merge2 заема 12MB при изпълнение




Ако методът merge2 се изпълнява самостоятелно, програмата стартира 6MB и винаги заема 6MB по време на изпълнение на функцията и след завършване.
 Хазяин| Публикувано на 2025-1-1 10:20:06 |
Оптимизирайте стила на писане

Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com