(no title)
latch | 1 year ago
genericWriter - 31987.66ns per iterations
appendSlice - 20112.35ns per iterations
appendSliceOptimized - 12996.49ns per iterations
`appendSliceOptimized` is implemented using knowledge of the underlying writer, the way that say an interface implementation in Go would be able to. It's a big part of the reason that reading a file in Zig line-by-line can be so much slower than in other languages (2)(1) https://gist.github.com/karlseguin/1d189f683797b0ee00cdb8186...
josephg|1 year ago
josephg|1 year ago
I think you forgot to run your benchmark in release mode. In debug mode, I get similar results to you. But in release mode, it runs ~5x faster than you reported:
I bet the first two implementations are emitting identical code. But appendSliceOptimized is clearly much more efficient.For some reason, rust is about twice as fast as zig in this test:
(1µs = 1000ns)[1] https://gist.github.com/josephg/e2dd6e7baf0a764a21bd724f8a2e...
Tests running on linux 6.8.0, CPU: Ryzen 7950x. zig v0.13 / rust v1.84.1.
Zig command: zig build --release=fast -Dtarget=native run
Rust command: RUSTFLAGS='-C target-cpu=native' cargo run --release -- --bench