Berhenti membuka setiap folder, dan berhenti mengambil kembali setiap pesan

PerformanceEmailService
Dikirim
14 Agustus 2026 pukul 02.09 UTC
Penulis
Kamo
Commit
9698977

Dua masalah perjalanan di jalur kritis / pesan, keduanya tidak terlihat dalam kode yang menyebabkan mereka. listFolders membuka setiap folder baca-saja untuk membaca dua integer darinya. Itu adalah SELECT dan CLOSE per folder, dan itu membuat server membangun setiap indeks kotak surat Sepanjang jalan, jadi kotak-folder twenty- kotak-surat menghabiskan empat puluh putaran perjalanan menjawab pertanyaan tentang empat puluh angka. Batang samping memuat ulang ini pada kait dan lagi di setiap perubahan kotak surat - surat tiba, pesan dibaca, bergerak, menghapus - sehingga adalah yang paling disebut operasi IMAP dalam produk. getUnreadCount 's own Javadoc telah mengatakan listFolders adalah "jauh terlalu mahal" karena ditulis. STATUS kembali tepat jumlah tersebut dan tidak menyentuh pesan. Server iklan RFC 5819 LISTATUS, Dovekot di antara mereka, sekarang menjawab seluruh pohon dalam satu perintah; apa pun mendapat satu STATUS per folder tertutup, di mana Jakarta Mail cache status melayani tidak terbaca dan total dari sebuah respon tunggal. Hanya folder yang server menolak STATUS dibuka sekarang. Path daftar tidak memiliki nama apapun N + 1. FetchProple.Item.ENVELOPE mengembang ke ENVELOPE INTERNALDATE RFC82.IZE - tidak ada BODYSTRUCTURE dan tidak ada header - tapi toAmplop panggilan getContentType () untuk lampiran heuristik dan baca Pesan-ID untuk threading. Jakarta Mail menjawab sebuah aktris yang tidak terduga oleh diam-diam mengeluarkan pesan tunggal FETCH, sehingga lima puluh halaman pesan biaya sampai dengan seratus perjalanan tambahan. Pencarian itu lebih buruk: tidak ada sama sekali. Keduanya sekarang berbagi satu profil yang mencakup setiap bidang toAmplop dibaca. Respon LISTATUS Parsed di sini daripada oleh Surat Jakarta, jadi parsed di bawah tes: IMAPRespon menerima baris protokol literal, dan sepuluh kasus penutup memesan,\ Nosmemilih, absen STATUS dan lalu lintas tidak berhubungan. Salah mereka adalah bug yang ditemukan - ListInfo decodes diubah nama kotak surat UTF-7 dan Status tidak, jadi bergabung dengan mereka karena mereka tiba akan dilaporkan nol yang belum dibaca untuk folder-folder dengan aksen dalam nama, dan tidak ada yang lain.

Semua perubahan

Seperti apa yang Anda lihat pengiriman?

Semua pembaruan ini secara otomatis mendarat di ruang kerja Anda. Mulai bebas dan menontonnya tumbuh minggu demi minggu.

Mulai Bebas SelamanyaTampilkan Harga