Перейти к содержимому
IMOEX 2237.17 1.2%
·Технологии·30 июля 2026 г.

Бенчмаркая System.Text.Json: те же данные, те же настройки, до ×4,3 разницы

Бенчмаркая System.Text.Json: те же данные, те же настройки, до ×4,3 разницы

В документации к PropertyNameCaseInsensitive есть предупреждение про накладные расходы, но не сказано, когда они появятся. Замерил на четырёх машинах, трёх рантаймах и трёх размерах входного JSON: пока через настройки идёт один регистр ключей, флаг не добавляет ничего — 0,92–1,09. Политика именования camelCase тоже.

Разницу до ×4,3 даёт другое: какие ещё написания этих ключей прошли через настройки раньше. Два экземпляра JsonSerializerOptions, созданные через new с одинаковыми полями, делят один кеш имён.

Внутри: пять историй с таблицами по четырём машинам, листинги из dotnet/runtime, предел кеша в 64 записи и веб-настройки, на которых эта разница не видна.

Это отрывок статьи. Полную версию читайте на сайте источника по ссылке ниже.

Источник: Habr