# EPF5 Week 11 Updates
This week I worked on the benchmarking suite for rust ssz implementations. I'm calling it [ssz-arena](https://github.com/ghiliweld/ssz-arena)! I'm hoping this will be *the* place people come to compare rust ssz implementations against each other.
What I'm still unsure about is whether it will be possible to crown a single crate as the best, or whether there's some tradeoff space people will be interested in exploring and having it visualized for them in some way.
So what can ssz-arena do today? It lets you test `SignedBeaconBlock` and `BeaconState` decoding on real blockchain data (thank you ethdo and beaconcha.in), measuring walltime as well as throughput. testers can specify which implementations to benchmark using features flags, today only `sigp` (on by default) and `grandine` are available. I envision people throwing their hat in the ring by submitting PRs with their own crates and features flags. Of course, my implementation will be in the arena soon enough :)

It leverages the existing tooling provided by [criterion](https://bheisler.github.io/criterion.rs/book/) so we don't have the reinvent the wheel. Fortunately, Criterion is fairly extensible so we can add nifty features later on (like flamegraphs and alloc tracking).
Here's what the benchmark output looks like:

### Job Not Finished
There's still some stuff to work on, that I'll get to throughout the rest of the fellowship:
- Grandine beacon state decoding is very slow, which is odd because beacon block decoding is blazingly fast. I'll have to look into why.
- I want to add flamegraph outputs
- Ideally, blockchain data could be loaded from the latest served beacon state (from [beaconcha.in](https://sync-mainnet.beaconcha.in/)). Right now, a user must provide `beacon-block.ssz` and `beacon-state.ssz` files themselves.
- Encoding benchmarks should be added as well but that's trivial enough to do. I've focused on decoding so far because that's the most impactful thing to speedup.
- I want to measure total allocated bytes as well as number of allocations, instead of just measuring walltime.
- I'll be fielding feedback about anything else I can add to make this even better.