- Dikirim
- 26 Agustus 2026 pukul 02.30 UTC
- Penulis
- kamo
- Commit
- c36c532
getRequestConfig menjalankan per permintaan, dan untuk setiap anggota bukan-Inggris yang disebut mergeWithFallback selama seluruh 23,252-key katalog setiap kali - membangun kembali hasil yang tidak dapat berubah sampai menyebarkan berikutnya. Diukur pada CPU desktop: 8-25 m tergantung pada lokal, ~ 16 ms rata-rata, pekerjaan tunggal-threaded duduk di depan respon. Pod lebih lambat dari desktop, dan ini mendarat di TTFB untuk setiap halaman yang dimuat oleh setiap anggota yang tidak membaca bahasa Inggris. Cache per lokal untuk kehidupan proses. Jalan Inggris tidak tersentuh - itu sudah kembali katalog dasar tanpa penggabungan. Dua hal membuat ini lebih murah dari kelihatannya. Hal ini dipenuhi oleh konstruksi: islocale () gerbang kunci sebelum mencapai peta, jadi paling banyak ada satu entri per didukung lokal, 21 dari mereka. Dan katalog cached sebagian besar gratis - mergeWithFallback salinan String REFERENCES daripada string, jadi apa yang dipertahankan adalah sebuah tulang belakang objek atas string cache impor telah dipegang. Enam salinan yang digabung tidak dapat dibedakan dari nol dalam pengukuran heap melintasi proses yang terpisah. Inggris fallback untuk file lokal yang hilang juga cache, sengaja. Locale file ship dalam gambar, sehingga salah satu yang absen pada permintaan pertama absen untuk seluruh kehidupan proses; membaca ulang kegagalan per permintaan tidak membeli apa-apa. Aman untuk berbagi karena tidak ada yang bermutasi: satu-satunya konsumen dari getMessage () adalah app / layout.tsx, which reads it and hands it to NextIntlClientProvider. Verifikasi: tsc --noEmit bersih di atas i18n / dan app / layout.tsx dengan imports transitif mereka.