| ... | @@ -9,6 +9,7 @@ const warn = std.debug.warn; | ... | @@ -9,6 +9,7 @@ const warn = std.debug.warn; |
| 9 | const Tokenizer = std.zig.Tokenizer; | 9 | const Tokenizer = std.zig.Tokenizer; |
| 10 | const Parser = std.zig.Parser; | 10 | const Parser = std.zig.Parser; |
| 11 | const io = std.io; | 11 | const io = std.io; |
| | 12 | const fmtIntSizeBin = std.fmt.fmtIntSizeBin; |
| 12 | | 13 | |
| 13 | const source = @embedFile("../os.zig"); | 14 | const source = @embedFile("../os.zig"); |
| 14 | var fixed_buffer_mem: [10 * 1024 * 1024]u8 = undefined; | 15 | var fixed_buffer_mem: [10 * 1024 * 1024]u8 = undefined; |
| ... | @@ -25,12 +26,15 @@ pub fn main() !void { | ... | @@ -25,12 +26,15 @@ pub fn main() !void { |
| 25 | const end = timer.read(); | 26 | const end = timer.read(); |
| 26 | memory_used /= iterations; | 27 | memory_used /= iterations; |
| 27 | const elapsed_s = @intToFloat(f64, end - start) / std.time.ns_per_s; | 28 | const elapsed_s = @intToFloat(f64, end - start) / std.time.ns_per_s; |
| 28 | const bytes_per_sec = @intToFloat(f64, source.len * iterations) / elapsed_s; | 29 | const bytes_per_sec_float = @intToFloat(f64, source.len * iterations) / elapsed_s; |
| 29 | const mb_per_sec = bytes_per_sec / (1024 * 1024); | 30 | const bytes_per_sec = @floatToInt(u64, @floor(bytes_per_sec_float)); |
| 30 | | 31 | |
| 31 | var stdout_file = std.io.getStdOut(); | 32 | var stdout_file = std.io.getStdOut(); |
| 32 | const stdout = stdout_file.writer(); | 33 | const stdout = stdout_file.writer(); |
| 33 | try stdout.print("{:.3} MiB/s, {} KiB used \n", .{ mb_per_sec, memory_used / 1024 }); | 34 | try stdout.print("parsing speed: {:.2}/s, {:.2} used \n", .{ |
| | 35 | fmtIntSizeBin(bytes_per_sec), |
| | 36 | fmtIntSizeBin(memory_used), |
| | 37 | }); |
| 34 | } | 38 | } |
| 35 | | 39 | |
| 36 | fn testOnce() usize { | 40 | fn testOnce() usize { |