Формула расчёта счётчика воркспейса¶
Размером воркспейса принято называть счётчик зелёной зоны.

Чтобы рассчитать, то какого размера будет воркспейс на счётчике, нужно воспользоваться формулой:¶
const maxSysMem = 1024 * 1024 * 1024 * 16;
let sysMem = memory * 0.25;
if (sysMem > maxSysMem) {
sysMem = maxSysMem;
}
const workspaceSize = (memory - sysMem) / 2;
Где memory это значение, которое в соответствующем поле memory, мы указываем
в файле manifest.json
Расчет размера памяти выделенной воркспейсу для установки в manifest.json¶
Задать значение счетчика более 24Gb¶
В данном случае в переменной memory вносится значение объема памяти более
64Gb. 1/4 от 64 равно 16Gb. Из формулы выше Далее значение sysMem составит
16Gb. Тогда формула для расчета memory примет вид:
Пример: Задать зеленую зону в 40Gb
memory = 40 x 2 + 16 = 96
переводим полученное значение в байты
memory = 96 x 10243 = 103079215104
Задать значение счетчика менее 24Gb¶
В данном случае значение memory составит менее 64Gb и в дальнейших расчетах sysMem принимает значение 1/4 от memory
workspaceSize = (memory - 1/4 memory) / 2
workspaceSize = (3/4 memory) / 2
workspaceSize x 2 = 3/4 memory
memory = workspaceSize X 2 x 4/3 = workspaceSize X 8/3
Пример: Задать зеленую зону в 10Gb
Для расчётов лучше 10Gb сначала перевести в байты, а потом вычислить 8/3
memory = (10 x 10243) x 8/3 = 28633115306,66667
Так как дробь неправильная имеем на выходе значение с дробным остатком который
мы не можем задать как значение memory
Далее отбрасываем дробный остаток и начинаем перебирать целую часть числа
вычисляя workspaceSize пока в результате не получим целое число
28633115307 x 3 / 8 = 10 737 418 240,125
28633115308 x 3 / 8 = 10 737 418 240,5
28633115309 x 3 / 8 = 10 737 418 240,875
28633115310 x 3 / 8 = 10 737 418 241,25
28633115311 x 3 / 8 = 10 737 418 241,625
28633115312 x 3 / 8 = 10 737 418 242
И на 6 ой попытке мы нашли ответ
memory = 28633115312
Info
В настоящее время при обновлении воркспейсов на новую версию возможно
появление ошибки связанной с несоответствия типов int и float.
Для ее устранения аналогично берем в файле manifest.json значение
memory и подбираем его новое значение что бы при умножении на 3 и
делении на 8 размер воркспейса был целым числом.
Пример зелёной зоны

- черта Зелёной Зоны Воркспейса (9.17GB - объём в гигабайтах)
- текущий объём, занимаемый Воркспейсом на машине (10.4GB - объём в гигабайтах).