# EPF5 Week 20 Update
This was a slow week but I did get a few stuff done:
- I made my current work on [sszb](https://github.com/ghiliweld/sszb) (my ssz implementation) public on github!!!
- I also added my create to [the arena](https://github.com/ghiliweld/ssz-arena) to see how it stacks up against other crates.
- Last week I mentioned three ways I could make sszb faster to beat grandine's crate: two of those turned out to be dead ends. Next week I'll be working on the last one and hopefully it gives me an edge.
---
## Inlines are no Silver Bullet
So adding a bunch of inlines all over the place was no the silver bullet I needed to 10x my speed. Performance actually got worse...
I suspect it's because a lot of my function calls are over generic types, which don't benefit from inlining.
I haven't given up per se, but I'll definitely have to be more discerning about what functions I inline instead of being liberal with it.
## Error Handling is Already Good
I wanted to try using [rancor](https://docs.rs/rancor/latest/rancor/) because it seemed like it could make my crate faster by speeding up the error handling, but after consideration I didn't see how it could. After talking to [David](https://github.com/djkoloski) who's working on [rkyv](https://github.com/rkyv/rkyv), it became clear that the biggest use-case for optimized error-handling is for big error types which increase the total size of the return value (slowing down performance). Our error type isn't big by any means and so I didn't spend any time prematurely optimizing that part.
---
The last thing I wanted to try was helping the compiler by giving it hints that could optimize away some bounds checks. I suspect a non-trivial amount of time is spent checking that buffers are safe to access, time which could be spent encoding and decoding.
Although before I go heads down into trying stuff, I will spend some time poring over some profiling traces. I didn't profile stuff very rigorously this week and just tried ad-hoc optimizations. This was a mistake and so before I change anything else I'll be profiling my code to see what the real bottlenecks are.