@@ -35,7 +35,7 @@ pub const std_options = std.Options{
3535};
3636
3737pub var js_runner_duration : usize = 0 ;
38- pub var tracking_allocator = TrackingAllocator . init ( std . testing . allocator ) ;
38+ pub var tracking_allocator : Allocator = undefined ;
3939
4040pub fn main () ! void {
4141 var mem : [8192 ]u8 = undefined ;
@@ -52,6 +52,12 @@ pub fn main() !void {
5252 var args = try std .process .argsWithAllocator (allocator );
5353 defer args .deinit ();
5454
55+ var tracking_arena = std .heap .ArenaAllocator .init (std .heap .c_allocator );
56+ defer tracking_arena .deinit ();
57+
58+ var ta = TrackingAllocator .init (tracking_arena .allocator ());
59+ tracking_allocator = ta .allocator ();
60+
5561 // ignore the exec name.
5662 _ = args .next ();
5763 var json_stats = false ;
@@ -82,6 +88,7 @@ pub fn main() !void {
8288 if (isSetup (t ) or isTeardown (t )) {
8389 continue ;
8490 }
91+ defer _ = tracking_arena .reset (.retain_capacity );
8592
8693 var status = Status .pass ;
8794 slowest .startTiming ();
@@ -175,7 +182,7 @@ pub fn main() !void {
175182 if (json_stats ) {
176183 var stdout = std .fs .File .stdout ();
177184 var writer = stdout .writer (&.{});
178- const stats = tracking_allocator .stats ();
185+ const stats = ta .stats ();
179186 try std .json .Stringify .value (&.{
180187 .{ .name = "browser" , .bench = .{
181188 .duration = js_runner_duration ,
0 commit comments