Я пишу расширение, которое использует chrome.storage API.Я хочу обрезать каждый элемент, чтобы убедиться, что он ниже максимального порогового значения для хранилища (локального и синхронизированного).
В документации указано, что размер байта каждого отдельного элемента составляет
измеряется JSON-строкой его значения плюс длина ключа.
Я использую следующий код для вычисления ожидаемого размера байта:
new TextEncoder().encode(JSON.stringify(value)).length + key.length
Я использую следующий код для проверки фактического использования:
chrome.storage.<storage-area>.set({ [key]: value }, () => {
chrome.storage.<storage-area>.getBytesInUse(key, bytes => {
console.log("actual bytes in use", bytes);
});
});
Учитываяключ «test» и значение «abc», ожидаемое использование байтов - 9b.Фактическое использование байта составляет 9b.
Учитывая ключ «test» и значение «« ταБЬℓσ »», ожидаемое использование байтов составляет 23b.Фактическое использование байта составляет 23b.
Учитывая ключ «test» и значение «<», ожидаемое использование байтов равно 7b.Фактическое использование байта 12b.</p>
Память, конечно, очищается между каждой проверкой.
В последнем примере, что вызывает эти 5 дополнительных, неожиданных байтов?Чего мне не хватает?
Редактировать: я использую Google Chrome версии 73.0.3683.75 (Официальная сборка) (64-разрядная версия)