From 6c1a88471fc6444ee93d6ca0c64d0953a0d857ac Mon Sep 17 00:00:00 2001 From: Jose Colon Rodriguez Date: Sat, 17 Feb 2024 09:50:50 -0400 Subject: GraphemeIterator ASCII optimization 3x faster --- src/main.zig | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'src/main.zig') diff --git a/src/main.zig b/src/main.zig index e7c0828..bb188ff 100644 --- a/src/main.zig +++ b/src/main.zig @@ -1,12 +1,12 @@ const std = @import("std"); // const GraphemeIterator = @import("ziglyph").GraphemeIterator; -// const GraphemeIterator = @import("Grapheme").GraphemeIterator; +const GraphemeIterator = @import("Grapheme").GraphemeIterator; // const codePointWidth = @import("ziglyph").display_width.codePointWidth; // const codePointWidth = @import("display_width").codePointWidth; // const strWidth = @import("ziglyph").display_width.strWidth; -const strWidth = @import("display_width").strWidth; -const CodePointIterator = @import("CodePoint").CodePointIterator; +// const strWidth = @import("display_width").strWidth; +// const CodePointIterator = @import("CodePoint").CodePointIterator; pub fn main() !void { var gpa = std.heap.GeneralPurposeAllocator(.{}){}; @@ -17,15 +17,16 @@ pub fn main() !void { defer allocator.free(input); var result: usize = 0; - // var iter = GraphemeIterator.init(input); + var iter = GraphemeIterator.init(input); // var iter = CodePointIterator{ .bytes = input }; - var iter = std.mem.splitScalar(u8, input, '\n'); + // var iter = std.mem.splitScalar(u8, input, '\n'); var timer = try std.time.Timer.start(); // for (0..50) |_| { // while (iter.next()) |cp| result += codePointWidth(@intCast(cp.code)); - while (iter.next()) |line| result += strWidth(line); + while (iter.next()) |_| result += 1; + // while (iter.next()) |line| result += strWidth(line); // iter.cp_iter.i = 0; // } -- cgit v1.2.3