pyo3 noc.speedup.ip

Merged Dmitry Volodin requested to merge noc-pyo3-ip into master

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 дает ощутимый выигрыш

Edited by Dmitry Volodin

Merge request reports