Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Perform some benchmarks/optimizations #43

Closed
rawleyfowler opened this issue Mar 2, 2023 · 4 comments
Closed

Perform some benchmarks/optimizations #43

rawleyfowler opened this issue Mar 2, 2023 · 4 comments
Labels
documentation Improvements or additions to documentation enhancement New feature or request investigate Something worth investigating, but not necesarilly worth fixing until the investigation is complete.

Comments

@rawleyfowler
Copy link
Owner

I think overall, Humming-Bird is pretty fast. But I'm sure it can perform better. I think it would be a good idea to get a performance comparison between Humming-Bird and other web-frameworks (not necessarily just Raku frameworks), then see where we can improve performance from there.

@rawleyfowler rawleyfowler added documentation Improvements or additions to documentation enhancement New feature or request investigate Something worth investigating, but not necesarilly worth fixing until the investigation is complete. labels Mar 2, 2023
@rawleyfowler
Copy link
Owner Author

#44 Is a start

@rawleyfowler
Copy link
Owner Author

rawleyfowler commented Mar 3, 2023

@masukomi Here are the results vs Sinatra, thought you might be interested being a Ruby guy :)

These tests are attempting to fire 2000 requests to the server in ~1 second, this is the average of 50 runs.

Note: These are both with a single handler on / returning the static HTML string <h1>Hello World!</h1>.

Sinatra with Puma (Ruby 3.0.5p211) request/sec test

RESULT
------------------------------------
Success Count: 1082 (54%)
Failed Count: 918 (46%)

Humming-Bird (Rakudo 2022.12, MoarVM) request/sec test

RESULT
------------------------------------
Success Count: 1446 (72%)
Failed Count: 554 (28%)

Note, there is a small problem on the Humming-Bird side that still needs to be addressed, sometimes our memory usage is quite a bit higher than to be expected when hit with large volumes of requests. I suspect this is due to how we handle long-polling sockets.

@rawleyfowler
Copy link
Owner Author

We're still about 10x slower than something like Express but, I think we've got a good foundation!

@rawleyfowler
Copy link
Owner Author

Closing this as complete for now. May come back to it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation enhancement New feature or request investigate Something worth investigating, but not necesarilly worth fixing until the investigation is complete.
Projects
None yet
Development

No branches or pull requests

1 participant