Інженер Microsoft розповів про те, як пришвидшився .NET 6

2 хв. читання

.NET 6 має працювати значно швидше за попередні версії, каже розробник з Microsoft Стівен Тоуб (Stephen Toub). Останні чотири роки він регулярно пише про продуктивність .NET Core і зараз настав час шостої версії. Вона має вийти в листопаді й буде LTS-випуском.

Для свого дослідження Тоуб вивчає всі приєднані пул-запити, які могли вплинути на продуктивність. Для .NET 6 йому довелось проаналізувати 550 пул-запитів (вдвічі більше ніж для п'ятої версії) — і 400 з них пов'язані зі швидкодією.

Розробник наводить бенчмарк-код, у якому порівнюється продуктивність та обсяги коду з .NET 6.0, .NET Framework 4.8 (останній з випусків старого формату для Windows) та .NET 5.0 (поточна версія). Цих результатів замало для остаточних висновків, та вони все ж показові.

Скажімо, в одному з прикладів видно, що .NET 6.0 працює приблизно на 25% швидше, ніж старіші версії, але водночас коду стало трохи більше.

benchmark

Подекуди .NET 6.0 може зводити часові витрати практично до нуля. Наприклад, у новому API Environment.ProcessPath, що вказує шлях до поточного процесу. Він виконується на 72 000 разів швидше і не генерує додаткового коду, якщо порівнювати з попереднім методом (через Process.GetCurrentProcess (). MainModule.FileName).

Для кращої швидкодії у .NET 6.0 додали техніку динамічної оптимізації PGO, але автоматично вона вимкнена, тож її потрібно буде налаштувати.

Завдяки Blazor застосунки .NET-застосунки (вкупі з рантаймом) можуть завантажуватись і виконуватись у браузерах. Якщо програма Hello World Blazor у .NET 5.0 важила близько 2,10 МБ, то у .NET 6.0 її зменшили до 1,88 МБ (а з додатковими інструментами — до 1,82 МБ).

Під час мережевої роботи дані, надіслані через вебсокети, тепер можна стискати для кожного повідомлення окремо. Тоуб зазначає, що це компромісний метод, але корисний, якщо обмін даними відбувається з тривалими затримками.

Окрім того, у .NET 6.0 переписали код Filestream для читання та запису файлів, тепер у .NET немає проблем з асинхронністю вводу й виводу на Windows. Також додались й інші методи для кращої швидкодії, як от копіювання коду там, де він викликається, оптимізації в .NET Runtime тощо.

Помітили помилку? Повідомте автору, для цього достатньо виділити текст з помилкою та натиснути Ctrl+Enter
Codeguida 5.9K
Приєднався: 8 місяців тому
Коментарі (0)

    Ще немає коментарів

Щоб залишити коментар необхідно авторизуватися.

Вхід / Реєстрація