Skip to content

Conversation

@ckampfe
Copy link
Contributor

@ckampfe ckampfe commented Aug 21, 2016

Hi there!

This PR does a few things to update the Elixir Phoenix framework benchmark:

This 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.

@ckampfe ckampfe changed the title Phoenix dev Improve the Elixir Phoenix benchmark Aug 21, 2016
@stevedomin
Copy link

Awesome work @ckampfe!!

@ckampfe
Copy link
Contributor Author

ckampfe commented Aug 22, 2016

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)?

@stevedomin
Copy link

No idea, I'm an elixir dev myself so hopefully someone from @TechEmpower can respond to your questions

@knewmanTE
Copy link
Contributor

@ckampfe thanks for your contributions! A couple things:

  1. master is fine. We're going to be merging round-13 branch into master shortly, so that master can represent the current testing branch.
  2. On Travis, I'm now seeing that the Erlang frameworks chicagoboss, mochiweb, and misultin are breaking. Would you mind taking a look at these and see if it's related to updating the Erlang version?

@ckampfe
Copy link
Contributor Author

ckampfe commented Aug 22, 2016

@stevedomin thanks!

@knewmanTE great, I'll keep it on master. I'll play a bit on the Erlang frameworks and see if going from 18.2 -> 19.0 had anything to do with the breakage. If so, we should be able to do the rest of this PR without any changes other than rolling back the 18.2 -> 19.0 bit.

Thanks for your help!

@ckampfe
Copy link
Contributor Author

ckampfe commented Aug 22, 2016

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. 18.3 appears to be the latest on that major, so I'll give that a shot and repush.

misultin:

Setup misultin: ERROR: OTP release 19 does not match required regex R15B0[^1]|R16B$|R16B[^0]|R16B0[^3]|R16B03-1|17|18
Setup misultin: ERROR: compile failed while processing /home/travis/build/TechEmpower/FrameworkBenchmarks/frameworks/Erlang/misultin/deps/erlydtl: rebar_abort

chicagoboss:

Setup chicagoboss: ERROR: OTP release 19 does not match required regex R16|17|18
Setup chicagoboss: ERROR: compile failed while processing /home/travis/build/TechEmpower/FrameworkBenchmarks/frameworks/Erlang/chicagoboss/deps/jsx: rebar_abort

mochiweb:

Setup mochiweb: ERROR: OTP release 19 does not match required regex R15B0[^1]|R16B$|R16B[^0]|R16B0[^3]|R16B03-1|17|18
Setup mochiweb: ERROR: compile failed while processing /home/travis/build/TechEmpower/FrameworkBenchmarks/frameworks/Erlang/mochiweb/deps/erlydtl: rebar_abort

@ckampfe
Copy link
Contributor Author

ckampfe commented Aug 23, 2016

@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.

@knewmanTE
Copy link
Contributor

@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!

@ckampfe
Copy link
Contributor Author

ckampfe commented Aug 23, 2016

@knewmanTE:

I'm not sure what would be involved with getting these up to date, but I can give it a look.

@thousandsofthem
Copy link

IMO updating erlang still the good idea - at least to latest 18.x - mainly because of bugfixes in there

@ckampfe
Copy link
Contributor Author

ckampfe commented Aug 23, 2016

@thousandsofthem good point, I agree. I'll give that a try

@ckampfe
Copy link
Contributor Author

ckampfe commented Aug 23, 2016

Phoenix runs fine on 18.3, getting dependency compile errors on mochiweb and chicagoboss for erlydtl.

@thousandsofthem
Copy link

So sad, even 18.3 is too new 😞

@ckampfe
Copy link
Contributor Author

ckampfe commented Aug 23, 2016

@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

@knewmanTE
Copy link
Contributor

@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.

@ckampfe
Copy link
Contributor Author

ckampfe commented Aug 25, 2016

@knewmanTE yep! I will get it taken care of

@ckampfe
Copy link
Contributor Author

ckampfe commented Aug 25, 2016

@knewmanTE just pulled master, rebased this branch against it, and pushed, should be as you requested

@msmith-techempower
Copy link
Member

@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).

@LadyMozzarella LadyMozzarella added this to the Round 13 milestone Aug 25, 2016
@knewmanTE
Copy link
Contributor

Thanks for all of your help and cooperation @ckampfe! Merging this in now.

@knewmanTE knewmanTE merged commit 0a65afd into TechEmpower:master Aug 26, 2016
@ckampfe ckampfe deleted the phoenix-dev branch August 27, 2016 05:10
Indribell added a commit to Indribell/FrameworkBenchmarks that referenced this pull request Dec 17, 2018
NateBrady23 pushed a commit that referenced this pull request Dec 17, 2018
* 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants