build_icmp_echo_packet
Impl | Payload | Time |
---|---|---|
Cython | 64 | 331 ns ± 3.52 ns |
Cython | 1000 | 759 ns ± 1.43 |
Rust | 64 | 374 ns ± 1.2 ns |
Rust | 1000 | 849 ns ± 7.08 |
build_icmp_echo_packet_ts
Impl | Payload | Time |
---|---|---|
Rust | 64 | 409 ns ± 4.93 |
Rust | 1000 | 558 ns ± 2.29 |
При этом необходимо учитывать, что формирование payload требует затрат:
In [16]: %timeit TS_STRUCT.pack(t0) + b"A" * (64 - 8 - 28)
164 ns ± 0.926 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
In [17]: %timeit TS_STRUCT.pack(t0) + b"A" * (1000 - 8 - 28)
226 ns ± 6.82 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
В таком случае build_icmp_echo_packet_ts
дает ощутимый выигрыш