Zig 0.17.0-dev (Split by item)
This is an example of documentation generated by
ZigDoc , an alternative to Zig's built-in
Auto Doc feature. See also
examples in other modes/formats . The project being documented here (as the example) is the Zig library itself.
Zig › std/ › crypto/ › benchmark.zig › benchmarkHash
benchmarkHash
benchmark.benchmarkHash
pub fn benchmarkHash (comptime Hash : anytype , comptime bytes : comptime_int , io : Io ) !u64
File
Code
pub fn benchmarkHash (comptime Hash : anytype , comptime bytes : comptime_int , io : Io ) !u64 {
const blocks_count = bytes / block_size ;
var block : [block_size ]u8 = undefined ;
random .bytes (&block );
var h = Hash .init (.{});
const start = benchTime (io );
for (0 ..blocks_count ) |_ | {
h .update (&block );
}
var final : [Hash .digest_length ]u8 = undefined ;
h .final (&final );
std .mem .doNotOptimizeAway (final );
const end = benchTime (io );
const elapsed_s = @as (f64 , @floatFromInt (end - start )) / time .ns_per_s ;
const throughput = @as (u64 , @intFromFloat (bytes / elapsed_s ));
return throughput ;
}