Прекратить доставку кода оболочки ни один маршрут не может достичь

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

Часть 1 аудита производительности на стороне клиента. Каждое изменение – это сохранение поведения. Ничто из того, что человек может увидеть или сделать, не отличается. I18nПоставщики импортировали четыре местных барреля с «импортом * как» и индексировали их по: Ключ времени выполнения. Пространство имен, прочитанное вычисленным ключом, непоколебимо по конструкции. Таким образом, все 236 локальных объектов отгружены, когда приложение отображает 74. Измеряется с постройкой против точные формы импорта: 1283 КБ -> 421 КБ минифицировано, 216 КБ -> 77 КБ гзип. Этот кусок находится на 143 из 143-страничных маршрутов, поэтому перед гидратацией на Каждая страница загружается. Все 88 локальных карт (22 локальных x 4 карт) проверены на соответствие Такой же экспорт, как и раньше. PhoneSdk статически импортировал все три адаптера, так что sip.js кольцевой веб-телефон достиг каждого участника на каждом маршруте, включая организации без Поставщик телефонов и члены команды, которые не нуждаются ни в чем. Модули адаптера теперь достигается через «ожидающий импорт», поэтому фабрика является асинхронной; ее единственный абонент Это был уже асинхронный звонок. TeamsAcsPhoneSdk отложил выпуск Azure SDK Таким образом, это расширяет установленный шаблон, а не изобретает его. UseFormatters построила два объекта Intl.DateTimeFormat на каждом вызове «обычай» и один объект. Свежий Intl. Формат номера для каждого вызова числа / процента / валюты. На сетке с двумя датами колонны по ~25 строк, что составляет 50 конструкций на сорт, фильтр или обновление прокрутки. Теперь подается из кэша в масштабе всего процесса: 2 028 сравнений в 12 местах, 5 зонах и 8 опционных форм выдают байт-идентичный выход, а 20 000 форматов шли 12 720 мс -> 308 мс. MeetingDialog (@mui/x-date-pickers' DateTimePicker) и редактор Lexical Оба были статичным импортом в всегда установленной оболочке для поверхностей, которые начинают закрываться. Сейчас оба отложены. Редактор откладывается на FloatingNote, а не на FloatingNoteLayer нарочно — лазификация слоя разрушила бы AnimatePresence отслеживание детей и бесшумное падение близкой анимации липкого — и FloatingNoteLayer Разогревает кусок на холостом ходу, поэтому первый открытый остается мгновенным, а не становится приманкой. NavLayout, SettingsAppPins и FloatingNotes получили всех участников Документ для себя, хотя объединяющий читателя именно для этого Конечная точка уже существовала в той же кодовой базе. Все трое сейчас делятся этим, и их книги Пройдите через общий автор, чтобы кэшированная карта не застопорилась. Добавить совпадение удалитьMemberUiPreference для пути сброса NavLayout, который в противном случае оставил бы Удаленный ключ, сидящий в кэше. Сборка браузера blake3 теперь импортируется лениво. Его втягивали все, что импортировалось. MAX UPLOAD BYTES или формат FileSize из одного и того же модуля, поэтому его WASM был извлечен и Составлено во время первой краски для функции, которая выполняется только после выбора файла. next.config: productionBrowserSourceMaps по умолчанию отключен (вернуться для отладки) Обсуждение KAMO BROWSER SOURCEMAPS=true Он излучал 349 картографических файлов, 103,7 МБ. несущий источники Содержание — полный оригинальный TypeScript этого приложения, обслуживаемый от / next/static для всех, кто может добраться до хоста. Также выпадает мертвый блок «env»: KAMO OAUTH2 CLIENT PASSWORD имеет нулевые ссылки в источнике и отображается в нулевом клиенте куски, так что ничего не просочилось, но блок - это постоянное приглашение вписать Засекретить момент, когда клиентский компонент читает его. Преднамеренно НЕ сделано: установка «компресс: ложно», чтобы позволить бротли Траефика взять верх. Traefik's Compress Middleware позволяет списки типов контента и список опускает application/javascript и application/json, которые служат для JS и JS. API-тела как — так отключение следующего gzip будет отправлять каждый кусок и каждый ответ API несжатый. Для этого сначала нужно расширить список разрешений в KlusterServices, как свой собственный. Общеплатформенные изменения. Проверено: tsc - noEmit clean; 7 защитных сценариев, не связанных с проездом на работу в полете; vitest 3 089 тестов (люкс является тайм-аутом при одновременной нагрузке — отказ) Установка отличалась за пробег и все повторно бежали зелеными в изоляции.

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

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

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

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