-
Notifications
You must be signed in to change notification settings - Fork 2k
Improve the Elixir Phoenix benchmark #2214
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
Conversation
|
Awesome work @ckampfe!! |
|
Thanks @stevedomin! I'm new to this Techempower stuff, do you know anywhere I could read more to figure out what we (elixir people) should be doing to fix the benchmark here? am I even picking the right branch (master)? |
|
No idea, I'm an elixir dev myself so hopefully someone from @TechEmpower can respond to your questions |
|
@ckampfe thanks for your contributions! A couple things:
|
|
@stevedomin thanks! @knewmanTE great, I'll keep it on master. I'll play a bit on the Erlang frameworks and see if going from Thanks for your help! |
|
Looking like misultin, chicagoboss, and mochiweb all require versions of dependencies that have a regexed match version string topping out at Erlang 18. To get this PR in I'm going to do like mentioned above and pull out the bit that upgrades to Erlang 19.
|
|
@knewmanTE @stevedomin removed the Erlang 19 version upgrade and was able to run the chicagoboss, misultin, and mochiweb, and phoenix verifications locally. Accordingly I've stripped the commit that did the upgrade. Unfortunately it looks like we'll have to look at bringing those frameworks up to date with E19 piecemeal. |
|
@ckampfe thanks! Do you know if the breaking frameworks are still being updated and maintained? If so, then this might just be a matter of waiting on them to catch up to the latest version of Erlang and then making a pull request once they're up-to-date. Alternatively, if it seems like there is no intention for some frameworks to ever become compatible with Erlang 19 (or if development on them has ceased entirely), then it may be worth having a discussion about whether we either (a) remove them from the test suite or (b) add 2 erlang install files, one for v18.2, and one for the most up-to-date version. We try to avoid things like (b) when possible so we can reduce clutter within the repo, but we also shouldn't be limiting the performance of newer frameworks because of deprecated frameworks we still have in the suite. At the very least, it never hurts to start a discussion! |
I'm not sure what would be involved with getting these up to date, but I can give it a look. |
|
IMO updating erlang still the good idea - at least to latest 18.x - mainly because of bugfixes in there |
|
@thousandsofthem good point, I agree. I'll give that a try |
|
Phoenix runs fine on 18.3, getting dependency compile errors on mochiweb and chicagoboss for |
|
So sad, even 18.3 is too new 😞 |
|
@thousandsofthem yeah.... mochi in particular uses a tag that is from June 2014: 6f707c9#diff-3f4771e738f5e2ca9e56daed016e678fR4 and https://github.com/mochi/mochiweb/releases/tag/v2.9.0 |
|
@ckampfe awesome work! Today we made a fix on master that solves a lot of the failing tests we were seeing on Travis (~20 of them were breaking because MongoDB wasn't starting properly). Could you try merging the latest from master into your branch and pushing to this pull request one more time? We just want to do a last sanity check on Travis to make sure there aren't any weird residual effects in your changes that might be affecting other frameworks. |
|
@knewmanTE yep! I will get it taken care of |
and upgrade application code to conform to latest application deps versions
|
@knewmanTE just pulled master, rebased this branch against it, and pushed, should be as you requested |
|
@knewmanTE I think we should merge this in for round-13 since it fixes a lot of Erlang/Elixir stuff which has been broken (even though it's technically a version upgrade and we frown upon that getting merged in during preview locks). |
|
Thanks for all of your help and cooperation @ckampfe! Merging this in now. |
See issue TechEmpower#2214 from Swoole reporting: swoole/swoole-src#2214
* Updated Swoole version from 2.1.3 to 4.2.9 * Changed push/pop to enqueue/dequeue See issue #2214 from Swoole reporting: swoole/swoole-src#2214
Hi there!
This PR does a few things to update the Elixir Phoenix framework benchmark:
Bumps the Erlang runtime from, and changes random number generation to use the newer Erlang18.2to19.0:randlibrary over:random, which was emitting deprecation warnings.1.1to1.31.0to1.2, along with related dependencies, and fixes application code that broke as a result of these dependency upgradesThis is all enumerated in the commit log as well :)
I have run the framework benchmark locally with these changes using the described vagrant setup and seen both faster numbers and lower error counts.
Thanks for your consideration!
PS: Please let me know if this should be reopened against another branch, happy to do so.