9f90c8dc43
We currently trigger a GC when creating a module while the remaining uncommitted code space is below 32MB. For bigger modules, this is not enough. Instead, make this limit relative: Trigger GC if we fall below 50% of the available code space, and re-adjust this limit after each GC to avoid repeated GCs that do not free anything. R=ahaas@chromium.org Bug: v8:8624 Change-Id: I7abfad3b57663d528a26d29232ad6bc2dc63cef4 Reviewed-on: https://chromium-review.googlesource.com/c/1391753 Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#58527}
19 lines
661 B
JavaScript
19 lines
661 B
JavaScript
// Copyright 2018 the V8 project authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
// Flags: --wasm-max-code-space=1
|
|
|
|
load('test/mjsunit/wasm/wasm-constants.js');
|
|
load('test/mjsunit/wasm/wasm-module-builder.js');
|
|
|
|
// We only have 1 MB code space. This is enough for the code below, but for all
|
|
// 1000 modules, it requires several GCs to get rid of the old code.
|
|
const builder = new WasmModuleBuilder();
|
|
builder.addFunction('main', kSig_i_i).addBody([kExprGetLocal, 0]);
|
|
const buffer = builder.toBuffer();
|
|
|
|
for (let i = 0; i < 1000; ++i) {
|
|
new WebAssembly.Module(buffer);
|
|
}
|