-
-
Notifications
You must be signed in to change notification settings - Fork 70
Benchmark Cuba #13
Comments
@mroth accepts pull requests with code and clear instructions on how to run the code/benchmarks. I'm sure he'd be happy to include if you'd like to put something together.
In this case we started out comparing web "frameworks" - Rails and Phoenix, and people started submitting their web library of choice. Go can be a fine choice, but it has no solution that competes on features which is what this repo was started to compare. In any case, I'd love to convince you to let go of that hesitation :) |
mroth/phoenix-showdown/issues/mroth#13
phoenix-showdown/issues/mroth#13
phoenix-showdown/issues/mroth#13
@chrismccord I've created a PR. Re: Elixir & Phoenix. I am convinced it's a good option based on the benchmarks but I am uncertain if it will work for current needs. It's not exactly a simple web app. I am learning both Go and Elixir. My hesitation to use Elixir for a project (I need to ship quickly) has a lot to do with the fact that I got so used to doing everything Ruby. It's been my go-to language since 2008. Unlike most, I am using Cuba and Sinatra. I am greatly unhappy with Ruby on Rails. While I am aware Ruby is one of the worst languages for tasks like networking, I can make non-trivial sites fast with it. Ruby's not so bad but as this repo shows, it's incredibly slow compared to Elixir and Go. Been learning Go for over a year now. I've yet to find time to read Elixir books. Found out you wrote one. |
The code for this is merged in #15 but keeping this issue open as a reminder to self to benchmark with it during the next found. |
I just wanted to add that I did run the benchmark locally with Cuba, and I ran it in a few different combinations. I remember a previous benchmark mentioning that Cuba and jruby/torqbox was actually the fastest ruby/rack based framework. We have been running Cuba and jruby-1.7.17 in production for a REST base API and it has held up very well. TL;DR => Cuba + new jruby-9.0.4.0 is the fastest benchmark I executed for ruby/rack implementations. There were some socket errors with each jRuby execution however. My test machine locally is a mid 2012 2.6 Ghz MBP with 16GB. Here is my test output (I ran each test in each configuration about 5 times, so these are the results of the output after some warmup and leveling off). The biggest difference was in the jRuby executions, as the JVM really needs time to warm up. I wanted to benchmark Cuba and MRI 2.2 as that is what was output in the other benchmarks. Selfishly, I wanted to run my current configuration which is cuba/jruby-1.17 and torqbox. Lastly, I wanted to see what the latest version of jRuby and the latest torquebox server could do. ***** running against ruby-2.2.2 with cuba and puma ***** running against jruby-1.7.17 with cuba and torqbox ***** running against jruby-9.0.4.0 with cuba and torquebox-4.0.0.beta2 |
mroth/phoenix-showdown/issues/mroth#13
phoenix-showdown/issues/mroth#13
I bet the results won't differ greatly from Sinatra but Cuba's worth benchmarking for those who are interested to know.
Like many, I hesitate to use Elixir. I think Golang is worth a try for most projects.
The text was updated successfully, but these errors were encountered: