V8 разработчик здесь.Короткий ответ - нет.
Причина, по которой такой опции не существует, заключается в том, что добавление свежих страниц в кучу происходит так быстро, что нет существенной выгоды делать это заранее.
V8 имеет флаг --initial-old-space-memory
,но не увеличивает начальное распределение.Вместо этого, это означает, что «не надо делать GC (в старом пространстве), пока размер кучи ниже этого предела».Если вы установите это значение, например, 1000 (МБ), а затем выделите 800 МБ недоступных объектов, а затем просто подождите, то V8 будет сидеть без дела с 800 МБ мусора в куче и не будет поднимать палец, чтобы избавиться отчто-нибудь из этого.
Я не уверен, в каком сценарии это поведение было бы полезно (это не значит, что оно полностью отключит GC; GC будет запускаться реже, но меньше GC при большей куче неЭто не обязательно добавляет к общему времени меньше, чем больше сборщиков мусора на меньшую кучу), поэтому я настоятельно рекомендую тщательно измерить влияние на вашу конкретную рабочую нагрузку перед использованием этого флага - если бы он был aхорошая идея включить это по умолчанию, тогда будет включено по умолчанию!
Если бы мне пришлось угадывать: этот флаг может быть полезным, есливы знаете, что (1) ваше приложение будет иметь большое количество «вечных» (= живет до тех пор, пока приложение работает) данных в куче, и (2) вы сможете оценить объем этих данных с разумной точностью.Например: если вы знаете, что в любой момент времени ваше старое пространство будет состоять из 500 МБ данных, которые всегда доступны, в любом случае плюс любой потенциально-освобождаемый мусор, вы можете использовать этот флаг, чтобы сообщить V8 "еслиразмер старого пространства меньше 600 МБ (= 500 МБ плюс немного), поэтому не пытайтесь найти мусор, это не будет стоить усилий ».