Не Мехмет интересуется:
«Как узнать, сколько памяти занимают мои проперти в Google Apps Script в проекте? Не пора ли их очищать?
Начнем с того, что общий доступный объем (неудаляемый) - 500 кб
Объем пары (ключ, значение) - 9 кб
https://developers.google.com/apps-script/guides/services/quotas#current_limitations
Скрипт, которым вы можете проверить занятый объем
function propertyUsedSize() {
const properties = PropertiesService.getScriptProperties().getProperties();
let totalBytes = 0;
for (let key in properties) {
totalBytes += getUTF8Length(key);
totalBytes += getUTF8Length(properties[key]);
}
const kilobytes = (totalBytes / 1024).toFixed(2);
Logger.log('~ объём пропертей: ' + kilobytes + ' КБ'); //~ объём пропертей: 17.65 КБ
}
function getUTF8Length(str) {
let utf8length = 0;
for (let i = 0; i < str.length; i++) {
const charCode = str.charCodeAt(i);
if (charCode < 0x80) utf8length += 1;
else if (charCode < 0x800) utf8length += 2;
else if (charCode < 0x10000) utf8length += 3;
else utf8length += 4;
}
return utf8length;
}
PS Минус GAS, что вторую функцию можно было бы заменить на простой TextEncoder — это встроенный класс в JavaScript (в браузерах и в некоторых средах выполнения), который превращает строку в массив байтов. Основное применение — когда тебе нужно понять, сколько реально весит строка в байтах, а не просто её длину в символах. Но нет TextEncoder в GAS, поэтому пришлось писать руками.
📗 Канал и Чат
📕 Оглавление канала
🏄 Заказ работы у нас
