Zatrzymaj transport kodu powłoki, dotarcia żadna trasa nie może dotrzeć

Performancekamo-internal
Szycy
26 sierpnia 2026 00:52 UTC
Autor
kamo
Pochęt się
0a36119

Batch 1 audytu wydajności po stronie klienta. Każda zmiana jest zachowaniem-zachowania; Nic, czego członek może zobaczyć lub zrobić, nie jest inne później. I18nDostawcy importowali cztery lokalne beczki z „importem” i indeksowali je przez Klucz runtime. Przestrzeń nazw czytana przez obliczony klucz jest nieoszałamiająca przez konstrukcję, Tak więc wszystkie 236 obiektów lokalnych zostało wysłanych, gdy aplikacja mapuje 74. Mierzone z esbuild przeciwko dokładne formy importu: 1.283 KB -> 421 KB minified, 216 KB -> 77 KB gzip. Ten kawałek Jest na 143 ze 143 stron tras, więc to była praca parse-and-execute przed nawodnieniem na nawodnieniu Każde obciążenie strony. Wszystkie 88 locale maps (22 locale x 4 mapy) zweryfikowane, aby rozwiązać problem identyczny eksport jak poprzednio. createPhoneSdk statycznie importowane wszystkie trzy adaptery, więc s? js.js AND Telefon ringcentral-web dotarł do każdego członka na każdej trasie - w tym orgs bez Dostawca usług telefonicznych i członkowie Zespołów, którzy nie potrzebują żadnego. Moduły adapterów są teraz Dotarcie przez „await import()", dlatego fabryka jest async; jej jedyny dzwoniący Był już async callback. TeamsAcsPhoneSdk już odroczył ten zestaw SDK Azure Sposób, więc rozszerza to ustalony wzór, a nie wymyślanie. useFormatters zbudował dwa obiekty Intl.DateTimeFormat na każdym wywołaniu "custom()" i a Nowy Intl.NumberFormat pod każdym numerem/procent/kurwa połączenie. Na siatce z dwoma datami Kolumny powyżej 25 wierszy, które są 50 konstrukcjami na rodzaj, filtr lub odświeżanie przewijania. Teraz serwowane z pamięci podręcznej w całym procesie: 2 028 porównań w 12 lokalizacjach, 5 strefach i 8 kształtów opcji wytwarza wyjście byte-identical, a 20 000 formatów poszło 12 720 ms -> 308ms. MeetingDialog (ang./x-date-pickers' DateTimePicker) i lepki edytor Lexical Obaj byli statycznym importem w zawsze zamontowanej skorupie dla powierzchni, które zaczynają się zamykać. Obaj są teraz odroczone. Redaktor jest odroczony w FloatingNote, a nie w. FloatingNoteLayer celowo – laifikowanie warstwy zawaliłoby się AnimatePresence's Śledzenie dzieci i po cichu upuść lepką animację - i FloatingNoteLayer Rozgrzewa kawałek na bezczynności, więc pierwsze otwarte pozostanie natychmiast, zamiast stać się poszukiwaniem. NavLayout, SettingsAppPins i FloatingNotes każdy przyniósł cały element Ui-preferencje dokumentują dla siebie, choć jest to czytelnik łączący właśnie to Punkt końcowy istniał już w tej samej bazie kodu. Teraz wszyscy trzej dzielą się tym, a ich pisanie Przejrzyj wspólnego pisarza, aby bujna mapa nie mogła zejść z nieświeżą. Dodaje pasujący UsuńMemUiPreference dla ścieżki resetowania NavLayout, która w przeciwnym razie pozostawiłaby Wyjątknięty klucz siedzący w pamięci podręcznej. Budowa przeglądarki blake3 jest obecnie leniwie importowana. Został wciągnięty przez cokolwiek importującego MAX_UPLOAD_BYTES lub formatFileSize z tego samego modułu, więc jego WASM został przywieziony i Kompilowany podczas pierwszej farby dla funkcji, która działa tylko po numerze pliku. Next.config: produkcjaBrowserSourceMaps wycofuje się (z powrotem do debugowania Zbudowany z KAMO_BROWSER_SOURCEMAPS?true). Emitował 349 plików map, 103.7 MB, wszystkie Przenoszenie źródełContent — kompletny oryginalny typ skryptu tej aplikacji, obsługiwany z /_next/static dla każdego, kto może dotrzeć do hosta. Również upuszcza martwy blok "env": KAMO_OAUTH2_CLIENT_PASSWORD ma zerowe odniesienia w źródle i pojawia się w kliencie zerowym Kawałki, więc nic nie przeciekało, ale blok jest stałym zaproszeniem do inline the Sekretuj moment, w którym komponent klienta to czyta. Celowo NIE zrobione: ustawienie „kompresja: fałszywa”, aby pozwolić brotli Traefik przejąć. Kompresja Traefika typu middleware pozwala na listy zawartości i liście pomija Aplikacja/javascript i aplikacja/json, co jest dokładnie tym, co Next obsługuje JS i Nadwozia API tak, jak - tak wyłączenie gzip Nexta wysyłało każdy kawałek i każdą odpowiedź API Nieskompresowany. To wymaga, aby lista dozwolona poszerzyła się w KlusterServices jako sama Zmiana w całej platformie. Zweryfikowano: tsc --noEmit czyste; skrypty 7 strażników niezwiązane z przepustką podczas lotu; Prowadzone testy 3,089 (apartament jest wylotowy pod równoczesnym obciążeniem – awaria Zestaw różnił się na bieg i wszystkie ponownieranowe zielone w izolacji).

Wszystkie zmiany

Jak to, co widzisz żeglugę?

Każda z tych aktualizacji automatycznie ląduje w miejscu pracy. Zacznij za darmo i obserwuj, jak rośnie tydzień po tygodniu.

Start Free ForeverZobacz ceny