fasthttp icon indicating copy to clipboard operation
fasthttp copied to clipboard

Feature request : update and show all examples for doing zero allocation when using fasthttp. 100% zero alloc for each req / resp.

Open kolinfluence opened this issue 10 months ago • 3 comments

Would it be more accurate to reconsider the representation of "doing nothing" when displaying 0 alloc/op? Could we perhaps offer a benchmark showcasing alloc/op for a basic "hello world" scenario?

I was taken aback by the alloc/op for the "hello world" scenario. Is there a chance I missed something in my approach? Could we illustrate a scenario with significantly reduced alloc/op?

For instance, could we explore employing the HTTP parser for header parsing?

Alternatively, could we examine a scenario where we could utilize the package from uptrace.dev, which boasts zero alloc for parsing HTTP headers, among other features?

P.S.: I'm expressing this as an avid supporter of fasthttp and eagerly anticipating enhancements, as i am adopting this package across various applications.

is there a hello world http parsing example with lesser garbage generated ?

kolinfluence avatar Apr 22 '24 19:04 kolinfluence

It doesn't generate garbage. That's exactly why we have these tests: https://github.com/valyala/fasthttp/blob/master/allocation_test.go

What it does do is allocate memory that will be reused over time. And of course it will also generate garbage if you create and destroy structs yourself instead of using the fasthttp Acquire/Release functions.

erikdubbelboer avatar Apr 29 '24 12:04 erikdubbelboer

@erikdubbelboer ok i get it. thx i used the https://raw.githubusercontent.com/valyala/fasthttp/master/examples/helloworldserver/helloworldserver.go without thinking to test for the allocs. i think it's because of fmt that generates the garbage.

hope someone can update all the examples to show / have 0 alloc / op instead.

kolinfluence avatar Apr 30 '24 01:04 kolinfluence

opening this issue because 0 alloc / op should be used as example instead. i change the title from "Surprised that using routing / http header parsing will generate some garbage." to feature request to have zero alloc examples.

kolinfluence avatar Apr 30 '24 01:04 kolinfluence