From 45ed12c1bcb8db5cb35c35495023ffaf24e2877c Mon Sep 17 00:00:00 2001 From: Taylan Kammer Date: Sun, 2 Mar 2025 19:50:03 +0100 Subject: improve benchmark --- src/libzisp.zig | 9 +++++++-- src/libzisp/value.zig | 2 ++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/libzisp.zig b/src/libzisp.zig index acaf002..d610f4e 100644 --- a/src/libzisp.zig +++ b/src/libzisp.zig @@ -299,9 +299,14 @@ test "parse4" { } test "parse bench" { + const iters = switch (@import("builtin").mode) { + .Debug, .ReleaseSmall => 1000, + .ReleaseSafe => 10_000, + .ReleaseFast => 100_000, + }; var timer = try std.time.Timer.start(); std.mem.doNotOptimizeAway(timer.lap()); - for (0..1000) |i| { + for (0..iters) |i| { _ = i; std.mem.doNotOptimizeAway(io.parser.parse( \\(a b c (x y z (a b c (x y z (a b c (x y z (a b c (x y z (a b c @@ -311,7 +316,7 @@ test "parse bench" { } const ns: f64 = @floatFromInt(timer.lap()); const secs = ns / 1_000_000_000; - std.debug.print("parse: {d:.3}s\n", .{secs}); + std.debug.print("parse {} times: {d:.3}s\n", .{ iters, secs }); } test "unparse" { diff --git a/src/libzisp/value.zig b/src/libzisp/value.zig index fbe7dbe..6c0c2e9 100644 --- a/src/libzisp/value.zig +++ b/src/libzisp/value.zig @@ -169,6 +169,8 @@ pub const OtherTag = enum(u3) { rune, sstr, qstr, char, misc }; pub const MiscValue = enum(u8) { f, t, nil, eof, undef = 255 }; +pub const undef = Value{ .misc = .{ .value = .undef } }; + /// Represents a Zisp value/object. pub const Value = packed union { /// To get the value as a regular double. -- cgit v1.2.3