diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2019-09-26 01:54:45 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-09-26 01:54:45 -0400 |
| commit | 68bb3945708c43109c48bda3664176307d45b62c (patch) | |
| tree | afb9731e10cef9d192560b52cd9ae2cf179775c4 /lib/std/unicode/throughput_test.zig | |
| parent | 6128bc728d1e1024a178c16c2149f5b1a167a013 (diff) | |
| parent | 4637e8f9699af9c3c6cf4df50ef5bb67c7a318a4 (diff) | |
| download | zig-68bb3945708c43109c48bda3664176307d45b62c.tar.gz zig-68bb3945708c43109c48bda3664176307d45b62c.zip | |
Merge pull request #3315 from ziglang/mv-std-lib
Move std/ to lib/std/
Diffstat (limited to 'lib/std/unicode/throughput_test.zig')
| -rw-r--r-- | lib/std/unicode/throughput_test.zig | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/lib/std/unicode/throughput_test.zig b/lib/std/unicode/throughput_test.zig new file mode 100644 index 0000000000..f8b18af734 --- /dev/null +++ b/lib/std/unicode/throughput_test.zig @@ -0,0 +1,37 @@ +const builtin = @import("builtin"); +const std = @import("std"); + +pub fn main() !void { + var stdout_file = try std.io.getStdOut(); + var stdout_out_stream = stdout_file.outStream(); + const stdout = &stdout_out_stream.stream; + + const args = try std.process.argsAlloc(std.heap.direct_allocator); + + @fence(.SeqCst); + var timer = try std.time.Timer.start(); + @fence(.SeqCst); + + var buffer1: [32767]u16 = undefined; + _ = try std.unicode.utf8ToUtf16Le(&buffer1, args[1]); + + @fence(.SeqCst); + const elapsed_ns_orig = timer.lap(); + @fence(.SeqCst); + + var buffer2: [32767]u16 = undefined; + _ = try std.unicode.utf8ToUtf16Le_better(&buffer2, args[1]); + + @fence(.SeqCst); + const elapsed_ns_better = timer.lap(); + @fence(.SeqCst); + + std.debug.warn("original utf8ToUtf16Le: elapsed: {} ns ({} ms)\n", elapsed_ns_orig, elapsed_ns_orig / 1000000); + std.debug.warn("new utf8ToUtf16Le: elapsed: {} ns ({} ms)\n", elapsed_ns_better, elapsed_ns_better / 1000000); + asm volatile ("nop" + : + : [a] "r" (&buffer1), + [b] "r" (&buffer2) + : "memory" + ); +} |
