Прекратите повторное объединение всего каталога по каждому запросу

Performancekamo-internal
Порезанный
26 августа 2026 г. в 02:30 UTC
Автор
kamo
Обещать
c36c532

getRequestConfig запускается по запросу, и для любого неанглоязычного участника он называется Каждый раз сливайте WithFallback по всему 23 252-ключевому каталогу, восстанавливая результат. Это не изменится до следующего развертывания. Измеряется на настольном процессоре: 8-25 мс в зависимости на месте, ~16 мс в среднем, однопоточной работы, сидящей перед Ответ. Подушка медленнее, чем рабочий стол, и это попадает на TTFB для каждой загрузки страницы. Каждый, кто не читает по-английски. Cached per locale для жизни процесса. Английский путь не тронут — это Уже вернулся базовый каталог без слияния. Две вещи делают это дешевле, чем кажется. Ограничено строительством: isLocale() Закрывает ключ до того, как он достигнет карты, поэтому есть максимум одна запись на поддерживаемую местность, 21 из них. И кэш-каталог в основном бесплатный — слить копии WithFallback струны, а не струны, поэтому то, что сохраняется, - это позвоночник объекта над Импортный кэш уже удерживает. Шесть слитых копий не отличались от ноль в измерении кучи в отдельных процессах. Английский запасной вариант для отсутствующего локального файла также намеренно кэшируется. местность файлы отправляются внутрь изображения, поэтому тот, который отсутствует по первому запросу, отсутствует для Вся жизнь процесса; перечитывание неудачи по запросу ничего не купило. Безопасно делиться, потому что ничто не мутирует: единственный потребитель GetMessages Приложение/layout.tsx, которое читает его и передает NextIntlClientProvider. Проверено: tsc - noEmit clean over i18n/ and app/layout.tsx с их транзитным импортом.

Все изменения

Как вы видите судоходство?

Каждое из этих обновлений автоматически попадает в ваше рабочее пространство. Начните бесплатно и смотрите, как он растет неделю за неделей.

Начните бесплатно навсегдаПосмотреть цены