02 Februari 2024 [JavaScript, Performance, Programming, Tech, TypeScript]
UPDATE: Seperti yang dikonfirmasi dalam bug saya login, ini diperbaiki di Firefox 123!
Lihat juga: Simpan kunci dan nilai DB yang diindeks kecil jika Anda menginginkan kinerja yang baik! Dan jangan menyimpan array angka dalam db yang diindeks – Gunakan base64 sebagai gantinya.
Kami memiliki masalah kinerja di Web Elemen saat meningkatkan skema DB yang diindeks, dan ternyata di Firefox, menghapus toko objek bisa sangat lambat. Ini bisa memakan waktu puluhan menit atau bahkan berjam -jam.
(Dalam Chromium, operasi yang sama dapat memakan waktu puluhan detik, tapi itu jalan, jauh lebih cepat.)
Saya mengharapkan ini menjadi operasi yang hampir instan, jadi ini adalah kejutan yang pasti bagi saya.
Perhatikan bahwa analisis saya didasarkan pada browser yang tersedia secara luas pada bulan Februari 2024, dan mungkin akan menjadi ketinggalan zaman.
Anda dapat melihat grafik lengkap di sini: buatanworlds.net/indexed-db-perf/delete.html. Kode sumber ada di codeberg.org/andybalaam/indexed-db-perf.
Inilah yang saya pelajari:
Judul 1: Firefox dapat memakan waktu sangat lama untuk menghapus toko objek
Firefox membutuhkan waktu 20 menit untuk menghapus toko objek yang berisi 200 ribu catatan, dengan satu indeks.
Di Chromium, saya menemukan bahwa menghapus toko objek yang serupa memakan waktu 21 detik, yang masih lambat, tetapi lebih dapat diterima.
Pertimbangkan untuk tidak menghapus toko yang tidak Anda butuhkan lagi. Jika Anda harus menghapusnya, Anda perlu memberikan umpan balik kepada pengguna Anda, terutama jika mereka menggunakan Firefox.
Judul 2: Membersihkan toko sebelum menghapusnya sangat membantu (!)


Di kedua Firefox dan Chromium, menjalankan ObjectStore.Clear () sebelum meningkatkan DB dan menghapus toko membuat peningkatan yang signifikan untuk total waktu. Pada kromium lebih dari setengah waktu untuk menghapus toko, dan di Firefox (di mana jumlahnya sangat besar) mengurangi waktu sekitar 3 kali!
Terima kasih kepada Michael-P di Stack Overflow karena telah memberi saya idenya.
Bersihkan toko Anda sebelum menghapusnya.
Judul 3: Tanpa indeks, ini baik -baik saja
Firefox menghapus penyimpanan objek cukup cepat jika tidak ada indeks (dan begitu pula kromium).

Bahkan untuk catatan 200K, Firefox dapat menghapus toko objek di bawah 500 ms jika tidak ada indeks di atasnya.
Jika Anda membutuhkan penghapusan cepat, jangan gunakan indeks.
Pengamatan: Ini tidak dilakukan sampai DB ditutup
Dalam eksperimen waktu saya, saya menemukan bahwa ObjectStore.delete () selesai, tetapi operasi itu tidak benar -benar dilakukan. Ketika saya menelepon metode tutup () pada idbdatabase saya, saya harus menunggu lebih lama lagi. (Waktu tutup termasuk dalam pengukuran di atas.)
Bahkan ketika saya menyegarkan browser, saya menemukan saya sudah lama menunggu untuk membuka database DB yang diindeks. Setelah menunggu, itu bekerja dengan baik dan pembaruan skema selesai.
Harapkan waktu dekat yang lama setelah penghapusan.
Game News
Berita Olahraga
News
Berita Terkini
Berita Terbaru
Berita Teknologi
Seputar Teknologi
Drama Korea
Resep Masakan
Pendidikan
Berita Terbaru
Berita Terbaru
Download Film
Gaming center adalah sebuah tempat atau fasilitas yang menyediakan berbagai perangkat dan layanan untuk bermain video game, baik di PC, konsol, maupun mesin arcade. Gaming center ini bisa dikunjungi oleh siapa saja yang ingin bermain game secara individu atau bersama teman-teman. Beberapa gaming center juga sering digunakan sebagai lokasi turnamen game atau esports.
