diff options
| author | Taylan Kammer <taylan.kammer@gmail.com> | 2025-03-02 19:50:03 +0100 |
|---|---|---|
| committer | Taylan Kammer <taylan.kammer@gmail.com> | 2025-03-02 19:50:03 +0100 |
| commit | 45ed12c1bcb8db5cb35c35495023ffaf24e2877c (patch) | |
| tree | 5bf27968999f1b76e62ac998bc3315abe9501c36 /src | |
| parent | cc2ad52a4247067d05979e5c075d29fa376e6d66 (diff) | |
improve benchmark
Diffstat (limited to 'src')
| -rw-r--r-- | src/libzisp.zig | 9 | ||||
| -rw-r--r-- | 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. |
