Skip to content

Add a reproducible benchmark harness and a CI regression gate #86

Description

@EONRaider

Target: 1.4.0 (Tier 1 — earn the benchmark)

There is no benchmark anywhere in the repo — no timeit, no
perf_counter, no pytest-benchmark, no performance job in CI. The
Tier 1 work (#82, #83, #84, #85) is worth roughly 2.4× end to end,
and nothing would stop it silently regressing.

This issue closes Tier 1 and is the gate on publishing any performance
claim.

What to do

  1. A benchmark script that walks the existing 97-frame corpus and
    reports frames/sec — the corpus is already the right workload
    because it exercises DNS, DHCP and IPv6 extension headers rather
    than one synthetic TCP frame.
  2. Optional comparison mode against dpkt and scapy, with both as
    dev-only extras so the zero-dependency guarantee is untouched.
  3. A CI job that fails on a significant regression against a committed
    baseline.

Why it is worth doing properly

Every published benchmark in this space is unusable: self-published by
the winner, run on a Core 2 Duo, or comparing CPython 3.6 against
CPython 2.7. A neutral, reproducible, CI-run comparison does not
currently exist for Python packet parsers
, and publishing one is a
contribution independent of where NETProtocols places in it.

Acceptance criteria

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions