Оценщик размера данных IndexedDB
Оцените использование хранилища IndexedDB для JSON-данных онлайн бесплатно. Наш оценщик размера данных IndexedDB вычисляет размер сериализации структурированного клонирования — фактического алгоритма, который использует IndexedDB, — и показывает, насколько сжатие LZ-String сокращает вашу квоту. Включает сравнение четырёх размеров (структурированное клонирование, сырой JSON, UTF-8 и сжатие LZ-String) с динамическим индикатором квоты и готовым фрагментом кода IndexedDB. Вся обработка происходит в вашем браузере. Без регистрации.
Paste any JSON payload to estimate its IndexedDB storage size using the structured clone algorithm, then compress it with LZ-String to see how much quota you save. All processing happens locally in your browser - your data never leaves your device.
Most space-efficient for string values in IndexedDB. Stores 15 bits per UTF-16 char.
Зачем использовать наш оценщик размера данных IndexedDB?
- Точная оценка хранилища IndexedDB: наш оценщик вычисляет размер сериализации структурированного клонирования — фактического алгоритма, которым IndexedDB сохраняет объекты, — включая накладные расходы по типам полей для строк, чисел, булевых значений, массивов и вложенных объектов.
- Мгновенное сжатие LZ-String для IndexedDB: сжимайте JSON-нагрузки с помощью LZ-String прямо в браузере и узнавайте точную экономию хранилища ещё до написания первой строки кода. Наш оценщик показывает размеры вывода UTF-16 и Base64 рядом.
- Безопасный онлайн-оценщик размера данных IndexedDB: ваши JSON-нагрузки никогда не покидают устройство. Вся оценка структурированного клонирования и сжатие LZ-String происходят локально в браузере — без загрузки на сервер, облачной обработки и с полной приватностью для чувствительных данных приложений.
- Оценщик размера данных IndexedDB без установки: оценивайте хранилище IndexedDB и сжимайте данные прямо в браузере без скачивания программ, плагинов и аккаунта. Работает в любом современном браузере и любой ОС.
Типичные сценарии использования оценщика размера данных IndexedDB
- Оптимизация офлайн-хранилища в PWA: прогрессивные веб-приложения, кеширующие ответы API в IndexedDB, выигрывают от сжатия LZ-String. Проверяйте с помощью оценщика, что ваш офлайн-набор данных укладывается в квоту устройства перед публикацией — особенно важно на мобильных с малым объёмом памяти.
- Планирование хранилища для расширений браузера: расширения Chrome и Firefox используют IndexedDB для постоянного хранения. Измеряйте с помощью оценщика, сколько квоты занимает модель данных вашего расширения и удерживает ли её сжатие LZ-String в пределах лимитов браузера на расширение.
- Проектирование схем клиентской базы данных: прежде чем реализовывать клиентскую базу на Dexie.js, PouchDB или чистом IndexedDB, смоделируйте с помощью оценщика схемы хранилищ объектов и оцените общие требования к хранилищу для типичного набора данных.
- Адаптер IndexedDB для Redux Persist и Zustand: библиотеки управления состоянием, сохраняющие данные в IndexedDB (redux-persist с idb-keyval, Zustand с persist-middleware), могут упираться в лимиты квоты при больших деревьях состояния. Измеряйте с помощью оценщика сериализованное состояние и решайте, нужно ли сжатие LZ-String.
- Предотвращение QuotaExceededError: QuotaExceededError в продакшене — жёсткий сбой для пользователей. Используйте оценщик, чтобы заранее измерить самые крупные нагрузки и добавить сжатие LZ-String до достижения потолка квоты, особенно в iOS Safari со строгими лимитами.
- Моделирование данных для offline-first приложений: приложения offline-first, синхронизирующие большие наборы данных (документы, метаданные изображений, история пользователя), нуждаются в тщательном бюджете хранилища. Сравнивайте с помощью оценщика сырое и сжатое хранилище для каждого хранилища объектов и составляйте реалистичный бюджет квоты.
Что такое оценка размера данных IndexedDB?
IndexedDB — это встроенная в браузер NoSQL-база данных: она хранит объекты JavaScript с помощью алгоритма структурированного клонирования, который сериализует каждый тип значения с определёнными накладными расходами: строки в UTF-16 (2 байта на символ), числа по 8 байт, булевы значения по 1 байту, объекты и массивы с примерно 50 байтами накладных расходов контейнера каждый. Наш оценщик размера данных IndexedDB вычисляет этот размер структурированного клонирования для любой JSON-нагрузки, а затем показывает, насколько сжатие LZ-String сокращает объём хранилища, — чтобы вы могли осознанно решить, стоит ли сжимать значения IndexedDB перед сохранением.
Как работает наш оценщик размера данных IndexedDB
- 1 Вставьте JSON-нагрузку: введите любой JSON-объект, массив или строку, которые планируете хранить в IndexedDB. Оценщик размера данных IndexedDB разбирает JSON и вычисляет размер структурированного клонирования — ваши данные никогда не покидают браузер.
- 2 Выберите формат хранения: выберите сырой JSON (базовый), LZ-String UTF-16 (самый экономный по месту для строковых значений) или LZ-String Base64 (переносимый, безопасный для URL). Оценщик сжимает нагрузку и показывает точную экономию хранилища.
- 3 Изучите метрики и скопируйте фрагмент: панель метрик показывает размер структурированного клонирования, размер сырого JSON, размер UTF-8 и сжатый размер с визуальными полосами, а также готовый фрагмент кода IndexedDB для выбранного формата сжатия.
Что означают метрики размера
- Размер структурированного клонирования: оценочные байты, которые IndexedDB использует для нативного хранения объекта, — включая накладные расходы по типам полей для строк (UTF-16), чисел (8 байт), булевых значений (1 байт) и контейнеров для объектов и массивов.
- Сырая строка JSON: размер в байтах JSON.stringify(data), хранимой как строка UTF-16 в IndexedDB, — часто меньше структурированного клонирования для глубоко вложенных объектов.
- Байты UTF-8: размер в байтах, если бы JSON хранился в UTF-8 (например, в Blob или ArrayBuffer), — полезно для сравнения с серверным хранилищем.
- Сжатие LZ-String: размер в байтах после сжатия LZ-String — обычно на 50–80 % меньше сырого JSON для повторяющихся структур данных вроде массивов похожих объектов.
Важные ограничения
Оценка размера структурированного клонирования приблизительна — фактические накладные расходы движка браузера зависят от браузера и версии. V8 в Chrome и SpiderMonkey в Firefox используют разные внутренние представления. Для точных измерений используйте navigator.storage.estimate() до и после записи в IndexedDB в вашем реальном приложении. Квота IndexedDB динамическая — обычно 50 % доступного места на диске — и сильно различается между настольными браузерами, мобильными браузерами и iOS Safari (со строгими лимитами около 50 МБ на origin).
Часто задаваемые вопросы
Оценщик размера данных IndexedDB вычисляет, сколько хранилища займёт JSON-нагрузка в IndexedDB по алгоритму структурированного клонирования, и показывает, насколько сжатие LZ-String сокращает этот объём. Наш бесплатный онлайн-оценщик работает полностью в вашем браузере.
Оценка точна в пределах ±20 % для типичных JSON-нагрузок. Она учитывает хранение строк в UTF-16, 8-байтовые числа, 1-байтовые булевы значения и около 50 байт накладных расходов контейнера на объект или массив. Для точных измерений используйте navigator.storage.estimate() в вашем приложении.
Безусловно. Наш оценщик обрабатывает всё локально в вашем браузере. Ваши JSON-нагрузки никогда не загружаются на сервер, не сохраняются и не покидают устройство.
Да — 100 % бесплатно, навсегда. Без регистрации, аккаунта, платных тарифов, ограничений размера данных и рекламы, прерывающей работу.
Квота IndexedDB динамическая — браузеры обычно выделяют 50 % доступного места на диске с минимумом около 50 МБ на origin. В iOS Safari действуют более строгие лимиты (около 50 МБ на origin). Используйте navigator.storage.estimate() во время выполнения, чтобы получить точную квоту для устройства пользователя.
Используйте LZ-String UTF-16 для максимальной экономии места — он хранит 15 бит на символ UTF-16, что делает его самым компактным вариантом для строковых значений в IndexedDB. Используйте Base64, если нужен переносимый, безопасный для URL формат.
LZ-String обычно даёт сокращение на 50–80 % для повторяющихся JSON-данных — массивы похожих объектов, объекты конфигурации с повторяющимися ключами и пользовательские настройки сжимаются сильнее всего.
Помощник сжатия LocalStorage ориентирован на лимит localStorage в 5 МБ. Оценщик размера данных IndexedDB добавляет оценку размера структурированного клонирования и показывает сравнение четырёх размеров с динамическим индикатором квоты.
Да. Все эти библиотеки внутри используют IndexedDB. Сжимайте значения с помощью LZ-String перед передачей в put() или add() и распаковывайте при чтении через get(). Инструмент предоставляет готовый фрагмент кода.