Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Register
  • Sign in
  • N noc
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
    • Locked files
  • Issues 443
    • Issues 443
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
    • Requirements
  • Merge requests 15
    • Merge requests 15
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Artifacts
    • Schedules
    • Test cases
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Container Registry
    • Terraform modules
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • External wiki
    • External wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • noc
  • noc
  • Merge requests
  • !5121

pyo3 noc.speedup.ip

  • Review changes

  • Download
  • Patches
  • Plain diff
Merged Dmitry Volodin requested to merge noc-pyo3-ip into master Mar 02, 2021
  • Overview 9
  • Commits 19
  • Pipelines 25
  • Changes 8

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 Jul 06, 2021 by Dmitry Volodin
Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: noc-pyo3-ip