Передмова
. Версія Net8, у порівнянні з. Net7 дуже змінився. У цій статті давайте розглянемо деякі типи змін у продуктивності, офіційно рекомендовані нові типи, спрямовані на покращення продуктивності додатків.
обхід
1.System.Collections.Frozen
Простори назв включають типи колекцій FrozenDictionary< TKey, TValue> та FrozenSet. Після створення колекції ці типи не дозволяють змінювати ключі та значення. Ця вимога дозволяє швидше здійснювати операції читання (наприклад, TryGetValue()). Ці типи особливо корисні для колекцій, які заповнюються при першому використанні, а потім зберігаються для тривалого використання, наприклад:
2.System.Buffers.IndexOfAnyValues
Тип призначений для передачі методу пошуку першого збігу будь-якого значення у переданій колекції. Наприклад, String.IndexOfAny(Char[]) шукає перше збігання будь-якого символу у заданому масиві рядка, який його викликає. NET 8 додає нові перевантаження методів, такі як String.IndexOfAny та MemoryExtensions.IndexOfAny, які приймають нові екземпляри типів. Коли ви створюєте екземпляр System.Buffers.IndexOfAnyValues, усі дані, необхідні для оптимізації наступних пошуків, будуть отримані саме в цей момент, тобто робота виконується наперед.
3.System.Text.CompositeFormat
Типи можна використовувати для оптимізації рядків форматування, які невідомі на момент компіляції (наприклад, рядки формату завантажуються з ресурсних файлів). Спочатку потрібно трохи часу на аналіз рядків, але це економить роботу кожного разу, коли ви його використовуєте.
4.System.Buffers.IndexOfAnyValues
Тип призначений для передачі методу пошуку першого збігу будь-якого значення у переданій колекції. Наприклад, String.IndexOfAny(Char[]) шукає перше збігання будь-якого символу у заданому масиві рядка, який його викликає. NET 8 додає нові перевантаження методів, такі як String.IndexOfAny та MemoryExtensions.IndexOfAny, які приймають нові екземпляри типів. Коли ви створюєте екземпляр System.Buffers.IndexOfAnyValues, усі дані, необхідні для оптимізації наступних пошуків, будуть отримані саме в цей момент, тобто робота виконується наперед.
5.System.Text.CompositeFormat
Типи можна використовувати для оптимізації рядків форматування, які невідомі на момент компіляції (наприклад, рядки формату завантажуються з ресурсних файлів). Спочатку потрібно трохи часу на аналіз рядків, але це економить роботу кожного разу, коли ви його використовуєте.
6. Системна чисельна техніка та система. Час виконання. Внутрішня система
Покращення просторів імен System.Numerics та System.Runtime.Intrinsics. Vector256, Matrix3x2 та Matrix4x4 покращують апаратне прискорення на .NET 8. Наприклад, Vector256 перереалізував 2xVector128, де це можливо. Апаратні інтер'єри тепер анотують за допомогою властивості ConstExpected. Це гарантує, що користувачі знають, коли базове обладнання потребує констант, а коли надзвичайні значення можуть випадково вплинути на продуктивність.
Посилання:Вхід за гіперпосиланням видно. Оригінальний:Вхід за гіперпосиланням видно.
|