Утечка памяти при использовании встроенного v8 - PullRequest
0 голосов
/ 20 июня 2019

Я использовал v8, встроенный в мое приложение cpp.Когда я создаю изоляцию каждую секунду из снимка (созданного заранее), и вызываю isolate-> Dispose () через десять секунд.С течением времени память RSS продолжает увеличиваться, и процесс, в конце концов, останавливается системой.

Обновите v8 до последней версии.

create:

Isolate::CreateParams create_params;
create_params.array_buffer_allocator = ArrayBuffer::Allocator::NewDefaultAllocator();

create_params.blob = &blob;
auto isolate = Isolate::New(create_params);

Local<Context> context = Context::New(isolate, NULL, global,
                          v8::MaybeLocal<v8::Value>(),
                          v8::DeserializeInternalFieldsCallback(
                                  DeserializeInternalFields, static_cast<void*>(&w->deserialized_data)));

dispose:

isolate->Dispose()

Когда все изоляторы v8 расположены, RSS должен вернуться на более низкий уровень, однако RSS все еще очень высок.Размер снимка составляет около 40 МБ, RSS стоит несколько ГБ через несколько секунд после запуска процесса.

...