Deja de enviar el código de shell no puede llegar la ruta

Performancekamo-internal
Shipped
26 de agosto de 2026 a las 0:52 UTC
Author
kamo
Commit
0a36119

Lote 1 de la auditoría de rendimiento del lado del cliente. Cada cambio es preservativo de los comportamientos; Nada de lo que un miembro puede ver o hacer es diferente después. I18nProviders importó cuatro barriles de localidad con "import * as" y los indexó por un llave de tiempo. Un espacio de nombres leído por una clave computarizada es despreciable por construcción, Así que los 236 objetos locales se enviaron cuando la aplicación mapea 74. Medido con esbuild en contra los formularios de importación exactos: 1,283 KB - 421 KB minificados, 216 KB -o 77 KB gzip. Ese trozo. está en 143 rutas de página, por lo que fue trabajo de parse-y-ejecutar antes de la hidratación en cada carga de página. Las 88 asignaciones locales (22 locals x 4 mapas) verificadas para resolver la misma exportación que antes. crearPhoneSdk importó estáticamente los tres adaptadores, así que sohp.js Y ringcentral-web-phone llegó a cada miembro en cada ruta, incluyendo orgs sin proveedor de telefonía y miembros de equipos, que no necesitan ninguno. Los módulos del adaptador son ahora alcanzado a través de "Espeit import() - , que es por lo que la fábrica es async; su única persona que llama ya era una llamada de asintc. TeamsAcsPhoneSdk ya aplazó el SDK Azure esto Así que esto extiende un patrón establecido en lugar de inventar uno. useFormatters construyó dos objetos Intl.DateTimeFormat en cada llamada y un fresco Intl.NúmeroFormato en cada número/porcentaje/llamada de divisas. En una cuadrícula con dos fechas columnas de más de 25 filas que es 50 construcciones por tipo, filtro o actualización de desplazamiento. Ahora servido de un caché de todo el proceso: 2.028 comparaciones en 12 locales, 5 zonas y 8 formas de opción producen salida de byte-idéntico, y 20.000 formatos fueron de 12.720ms - 308ms. MeetingDialog ( DateTimePickers' DateTimePickers y el editor Lexical de nota pegajosa fueron ambas importaciones estáticas en la cáscara siempre montada para superficies que comienzan cerradas. Ambos se aplazan ahora. El editor se aplaza en FloatingNote en lugar de en FloatingNoteLayer a propósito, lazificar la capa colapsaría AnimatePresencia's seguimiento de niños y suelta silenciosamente la animación cercana de la pegajosa y FloatingNoteLayer calienta el trozo en ocioso por lo que el primer abierto permanece instantáneo en lugar de convertirse en una búsqueda. NavLayout, SettingsAppPins y FloatingNotes obtuvieron cada uno a todo el miembro ui-preferencias documentan por sí mismos, aunque un lector unido para exactamente eso endpoint ya existía en la misma base de código. Los tres ahora lo comparten, y sus escritos ir a través del escritor compartido para que el mapa en caché no pueda quedar rancio. Añade una coincidencia deleteMemberUiPreference for NavLayout's reset path, que de otra manera habría dejado una borró la llave sentada en el caché. La construcción del navegador de blake3 ahora se importa perezosamente. Fue arrastrado por cualquier importación MAX-UPLOAD-BYTES o formatoFileSize desde el mismo módulo, por lo que su WASM fue buscado y compilado durante la primera pintura para una función que sólo se ejecuta después de un recolector de archivos. siguiente.config: productionBrowserSourceMaps defaults off (opt back in for a desprender construir con KAMO-BROWSER-SOURCEMAPS=true). Emitía 349 archivos de mapas, 103.7 MB, todos portando fuentesContent el original completo TypeScript de esta aplicación, servido desde /-next/estático para cualquiera que pueda llegar al huésped. También deja caer el bloque muerto de Eenv: KAMO-OAUTH2-CLIENT-PASSWORD tiene cero referencias en origen y aparece en cliente cero trozos, así que nada se estaba filtrando, pero el bloque es una invitación de pie para en línea de la secreta el momento en que un componente cliente lo lee. Deliberadamente NO hecho: establecer la fijación de la empresa: falso para dejar que el brotli de Traefik se apodere. La compasión de Traefik permite tipos de contenido de listas y la lista omita aplicación/javascript y aplicación/json, que es exactamente lo que Next sirve a JS y Los cuerpos de la API como desactivar el gzip de Next enviarían cada trozo y respuesta de la API descomprimido. Eso necesita la lista de socios encendida primero en KlusterServices, como propia Cambio de plataforma. Verificado: tsc --noEmita limpio; los 7 scripts de guardia no relacionados con el pase de trabajo en vuelo; vi 3,089 pruebas pasan (la suite es desgaste bajo carga concurrente. conjunto difería por carrera y todo el verde de nuevo-ran en aislamiento).

All changes

Como lo que ves enviaste?

Cada una de estas actualizaciones aterriza en su espacio de trabajo automáticamente. Empieza gratis y verlo crecer semana tras semana.

Arranzar gratis para siempreVer Precios