From 1ddd853998332698c6db1459f529138e17a592e1 Mon Sep 17 00:00:00 2001 From: Alexandre Hamez Date: Thu, 23 Jan 2025 12:08:31 +0100 Subject: [PATCH] chore: move benchmarks into a mix task Also, generate synthetic data using field type apparition frequency provided by Google --- .formatter.exs | 2 +- .gitignore | 28 +- README.md | 8 +- benchmark/benchmark_payloads.bin | Bin 0 -> 9725256 bytes benchmark/compile_benchmark_protos.ex | 4 + .../protox/benchmark/generate/payloads.ex | 76 +++++ .../tasks/protox/benchmark/generate/protos.ex | 89 +++++ benchmark/mix/tasks/protox/benchmark/run.ex | 76 +++++ benchmark/protos/synthetic_10.proto | 19 ++ benchmark/protos/synthetic_100.proto | 109 ++++++ benchmark/protos/synthetic_20.proto | 30 ++ benchmark/protos/synthetic_200.proto | 210 ++++++++++++ benchmark/protos/synthetic_5.proto | 15 + benchmark/protos/synthetic_50.proto | 60 ++++ benchmarks/benchmarks.proto | 67 ---- benchmarks/generate_payloads.exs | 65 ---- benchmarks/handmade_payloads.exs | 319 ------------------ benchmarks/load.exs | 17 - benchmarks/protox.exs | 12 - benchmarks/run.exs | 138 -------- coveralls.json | 5 +- mise.toml | 2 +- mix.exs | 8 +- mix.lock | 2 + test/code_generation_test.exs | 5 +- 25 files changed, 716 insertions(+), 650 deletions(-) create mode 100644 benchmark/benchmark_payloads.bin create mode 100644 benchmark/compile_benchmark_protos.ex create mode 100644 benchmark/mix/tasks/protox/benchmark/generate/payloads.ex create mode 100644 benchmark/mix/tasks/protox/benchmark/generate/protos.ex create mode 100644 benchmark/mix/tasks/protox/benchmark/run.ex create mode 100644 benchmark/protos/synthetic_10.proto create mode 100644 benchmark/protos/synthetic_100.proto create mode 100644 benchmark/protos/synthetic_20.proto create mode 100644 benchmark/protos/synthetic_200.proto create mode 100644 benchmark/protos/synthetic_5.proto create mode 100644 benchmark/protos/synthetic_50.proto delete mode 100644 benchmarks/benchmarks.proto delete mode 100644 benchmarks/generate_payloads.exs delete mode 100644 benchmarks/handmade_payloads.exs delete mode 100644 benchmarks/load.exs delete mode 100644 benchmarks/protox.exs delete mode 100644 benchmarks/run.exs diff --git a/.formatter.exs b/.formatter.exs index 370c90a9..216876e2 100644 --- a/.formatter.exs +++ b/.formatter.exs @@ -1,3 +1,3 @@ [ - inputs: ["mix.exs", "{config,lib,test,conformance,benchmarks}/**/*.{ex,exs}"] + inputs: ["mix.exs", "{config,lib,test,conformance,benchmark}/**/*.{ex,exs}"] ] diff --git a/.gitignore b/.gitignore index b1864cd1..9324d4e5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,22 +1,20 @@ +*.beam +*.benchee +*.ez +.DS_Store +.lefthook-local.yml +.tool-versions /_build +/benchmark/output +/conformance-test-runner +/conformance_report /cover /deps /doc /docs -erl_crash.dump -*.ez -*.beam -.DS_Store -/protobuf-* -/conformance_report -/protox_conformance +/failing_tests.txt /priv/plts/*.plt /priv/plts/*.plt.hash -/conformance-test-runner -.tool-versions -/benchmarks/benchmarks/ -/benchmarks/*.benchee -/benchmarks/payloads.bin -/benchmarks/output -/failing_tests.txt -.lefthook-local.yml +/protobuf-* +/protox_conformance +erl_crash.dump diff --git a/README.md b/README.md index 8f24585e..3583f1ec 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ iex> {:ok, msg} = Msg.decode(binary) - [Files generation](#files-generation) - [Conformance](#conformance) - [Types mapping](#types-mapping) -- [Benchmarks](#benchmarks) +- [Benchmark](#benchmark) - [Contributing](#contributing) - [Credits](#credits) @@ -448,13 +448,11 @@ Protobuf | Elixir `enum` | `atom() \| integer()` `message` | `struct()` -## Benchmarks +## Benchmark You can launch benchmarks to see how `protox` perform: ``` -mix run ./benchmarks/generate_payloads.exs # first time only, generates random payloads -mix run ./benchmarks/run.exs --lib=./benchmarks/protox.exs -mix run ./benchmarks/load.exs +TODO ``` ## Contributing diff --git a/benchmark/benchmark_payloads.bin b/benchmark/benchmark_payloads.bin new file mode 100644 index 0000000000000000000000000000000000000000..24fcaa1130dd3f57c7f77a99bc04578feda42fb4 GIT binary patch literal 9725256 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