Compare commits

...

1 Commits

Author SHA1 Message Date
Jarred Sumner
97058354ba Remove usages of not 100% necessary arenas 2023-07-31 06:47:55 -07:00
7 changed files with 28 additions and 42 deletions

View File

@@ -1375,7 +1375,8 @@ fn dump_mimalloc(
_: []const JSC.C.JSValueRef,
_: JSC.C.ExceptionRef,
) JSC.C.JSValueRef {
globalThis.bunVM().arena.dumpStats();
_ = globalThis;
// globalThis.bunVM().arena.dumpStats();
return JSC.JSValue.jsUndefined().asObjectRef();
}

View File

@@ -424,7 +424,7 @@ pub const VirtualMachine = struct {
/// source_mappings
saved_source_map_table: SavedSourceMap.HashTable = undefined,
arena: *Arena = undefined,
// arena: *Arena = undefined,
has_loaded: bool = false,
transpiled_count: usize = 0,

View File

@@ -169,17 +169,17 @@ pub const WebWorker = struct {
std.debug.assert(this.status == .start);
std.debug.assert(this.vm == null);
this.arena = try bun.MimallocArena.init();
// this.arena = try bun.MimallocArena.init();
var vm = try JSC.VirtualMachine.initWorker(
this.arena.allocator(),
bun.default_allocator,
this.parent.bundler.options.transform_options,
null,
null,
this.store_fd,
this,
);
vm.allocator = this.arena.allocator();
vm.arena = &this.arena;
vm.allocator = bun.default_allocator;
// vm.arena = &this.arena;
var b = &vm.bundler;
@@ -296,7 +296,6 @@ pub const WebWorker = struct {
vm.eventLoop().tickConcurrentWithCount() > 0)
{
vm.global.vm().releaseWeakRefs();
_ = vm.arena.gc(false);
_ = vm.global.vm().runGC(false);
}

View File

@@ -30,7 +30,7 @@ const DotEnv = @import("env_loader.zig");
const which = @import("which.zig").which;
const JSC = @import("root").bun.JSC;
const AsyncHTTP = @import("root").bun.HTTP.AsyncHTTP;
const Arena = @import("./mimalloc_arena.zig").Arena;
// const Arena = @import("./mimalloc_arena.zig").Arena;
const OpaqueWrap = JSC.OpaqueWrap;
const VirtualMachine = JSC.VirtualMachine;
@@ -40,7 +40,7 @@ pub const Run = struct {
ctx: Command.Context,
vm: *VirtualMachine,
entry_path: string,
arena: Arena = undefined,
// arena: Arena = undefined,
any_unhandled: bool = false,
pub fn bootStandalone(ctx_: Command.Context, entry_path: string, graph: bun.StandaloneModuleGraph) !void {
@@ -53,15 +53,15 @@ pub const Run = struct {
js_ast.Expr.Data.Store.create(default_allocator);
js_ast.Stmt.Data.Store.create(default_allocator);
var arena = try Arena.init();
// var arena = try Arena.init();
if (!ctx.debug.loaded_bunfig) {
try bun.CLI.Arguments.loadConfigPath(ctx.allocator, true, "bunfig.toml", &ctx, .RunCommand);
}
run = .{
.vm = try VirtualMachine.initWithModuleGraph(arena.allocator(), ctx.log, graph_ptr),
.arena = arena,
.vm = try VirtualMachine.initWithModuleGraph(bun.default_allocator, ctx.log, graph_ptr),
// .arena = arena,
.ctx = ctx,
.entry_path = entry_path,
};
@@ -70,8 +70,8 @@ pub const Run = struct {
var b = &vm.bundler;
vm.preload = ctx.preloads;
vm.argv = ctx.passthrough;
vm.arena = &run.arena;
vm.allocator = arena.allocator();
// vm.arena = &run.arena;
vm.allocator = bun.default_allocator;
b.options.install = ctx.install;
b.resolver.opts.install = ctx.install;
@@ -136,7 +136,7 @@ pub const Run = struct {
js_ast.Expr.Data.Store.create(default_allocator);
js_ast.Stmt.Data.Store.create(default_allocator);
var arena = try Arena.init();
// var arena = try Arena.init();
if (!ctx.debug.loaded_bunfig) {
try bun.CLI.Arguments.loadConfigPath(ctx.allocator, true, "bunfig.toml", &ctx, .RunCommand);
@@ -144,7 +144,7 @@ pub const Run = struct {
run = .{
.vm = try VirtualMachine.init(
arena.allocator(),
bun.default_allocator,
ctx.args,
null,
ctx.log,
@@ -152,7 +152,7 @@ pub const Run = struct {
ctx.debug.hot_reload != .none,
ctx.runtime_options.smol,
),
.arena = arena,
// .arena = arena,
.ctx = ctx,
.entry_path = entry_path,
};
@@ -161,8 +161,8 @@ pub const Run = struct {
var b = &vm.bundler;
vm.preload = ctx.preloads;
vm.argv = ctx.passthrough;
vm.arena = &run.arena;
vm.allocator = arena.allocator();
// vm.arena = &run.arena;
vm.allocator = bun.default_allocator;
b.options.install = ctx.install;
b.resolver.opts.install = ctx.install;
@@ -298,7 +298,8 @@ pub const Run = struct {
vm.eventLoop().tickConcurrentWithCount() > 0)
{
vm.global.vm().releaseWeakRefs();
_ = vm.arena.gc(false);
// _ = vm.arena.gc(false);
Global.mimalloc_cleanup(false);
_ = vm.global.vm().runGC(false);
vm.tick();
}

View File

@@ -720,10 +720,10 @@ pub const TestCommand = struct {
}
};
var arena = bun.MimallocArena.init() catch @panic("Unexpected error in mimalloc");
// var arena = bun.MimallocArena.init() catch @panic("Unexpected error in mimalloc");
vm_.eventLoop().ensureWaker();
vm_.arena = &arena;
vm_.allocator = arena.allocator();
// vm_.arena = &arena;
vm_.allocator = bun.default_allocator;
var ctx = Context{ .reporter = reporter_, .vm = vm_, .files = files_, .allocator = allocator_ };
vm_.runWithAPILock(Context, &ctx, Context.begin);
}

View File

@@ -1551,7 +1551,7 @@ pub const RequestContext = struct {
while (true) {
__arena = ThreadlocalArena.init() catch unreachable;
JavaScript.VirtualMachine.get().arena = &__arena;
// JavaScript.VirtualMachine.get().arena = &__arena;
JavaScript.VirtualMachine.get().has_loaded = true;
JavaScript.VirtualMachine.get().tick();
defer {
@@ -1563,7 +1563,7 @@ pub const RequestContext = struct {
js_ast.Expr.Data.Store.reset();
JavaScript.API.Bun.flushCSSImports();
Output.flush();
JavaScript.VirtualMachine.get().arena.deinit();
// JavaScript.VirtualMachine.get().arena.deinit();
JavaScript.VirtualMachine.get().has_loaded = false;
}

View File

@@ -28,15 +28,13 @@ const BoringSSL = bun.BoringSSL;
pub const NetworkThread = @import("./network_thread.zig");
const ObjectPool = @import("./pool.zig").ObjectPool;
const SOCK = os.SOCK;
const Arena = @import("./mimalloc_arena.zig").Arena;
const ZlibPool = @import("./http/zlib.zig");
const URLBufferPool = ObjectPool([4096]u8, null, false, 10);
const uws = bun.uws;
pub const MimeType = @import("./http/mime_type.zig");
pub const URLPath = @import("./http/url_path.zig");
// This becomes Arena.allocator
pub var default_allocator: std.mem.Allocator = undefined;
var default_arena: Arena = undefined;
pub const default_allocator: std.mem.Allocator = bun.default_allocator;
pub var http_thread: HTTPThread = undefined;
const HiveArray = @import("./hive_array.zig").HiveArray;
const Batch = NetworkThread.Batch;
@@ -627,8 +625,6 @@ pub const HTTPThread = struct {
pub fn onStart(_: FakeStruct) void {
Output.Source.configureNamedThread("HTTP Client");
default_arena = Arena.init() catch unreachable;
default_allocator = default_arena.allocator();
var loop = uws.Loop.create(struct {
pub fn wakeup(_: *uws.Loop) callconv(.C) void {
http_thread.drainEvents();
@@ -868,9 +864,7 @@ pub inline fn getAllocator() std.mem.Allocator {
return default_allocator;
}
pub inline fn cleanup(force: bool) void {
default_arena.gc(force);
}
pub inline fn cleanup(_: bool) void {}
pub const Headers = @import("./http/headers.zig");
@@ -2475,15 +2469,6 @@ pub fn done(this: *HTTPClient, comptime is_ssl: bool, ctx: *NewHTTPContext(is_ss
this.state.request_stage = .done;
this.state.stage = .done;
this.proxy_tunneling = false;
if (comptime print_every > 0) {
print_every_i += 1;
if (print_every_i % print_every == 0) {
Output.prettyln("Heap stats for HTTP thread\n", .{});
Output.flush();
default_arena.dumpThreadStats();
print_every_i = 0;
}
}
callback.run(result);
}
}