Skip to content
This repository has been archived by the owner on May 5, 2020. It is now read-only.

ActiveRecord and ActiveModel 3.1 #58

Open
wants to merge 33 commits into
base: 3-0-github
Choose a base branch
from
Open

Conversation

haileys
Copy link

@haileys haileys commented Apr 11, 2014

This pull request upgrades the ActiveRecord and ActiveModel components on 3-0-github to 3.1.

ActiveRecord 3.0 suffers from severe performance regressions, especially relating to attribute methods, which are mostly resolved in 3.1: https://gist.github.com/charliesome/10448555

cc @github/perf @github/rails3

@rsanheim
Copy link

Would it be worth adding a benchmark to Model.find(n) and
Model.find_by_name type calls, to compare those across 3.0 and 3.1?
Especially considering the object allocation differences that Aaron's
graph showed between 3.0 and 3.1...I think 3.1 gets worse before things get
better in 4.x.

On Fri, Apr 11, 2014 at 5:41 AM, Charlie Somerville <
notifications@github.com> wrote:

This pull request upgrades the ActiveRecord and ActiveModel components on
3-0-github to 3.1.

ActiveRecord 3.0 suffers from severe performance regressions, especially
relating to attribute methods, which are mostly resolved in 3.1:
https://gist.github.com/charliesome/10448555

cc @github/perf @github/rails3

You can merge this Pull Request by running

git pull https://github.com/github/rails 3-0-github+ar-3-1

Or view, comment on, or merge it at:

#58
Commit Summary

  • ActiveRecord 3.1 and ActiveModel 3.1
  • bump activemodel builder dependency to 3.2
  • bump arel to 2.2.3
  • import activesupport/core_ext/object/inclusion from 3-2-github
  • add bcrypt-ruby to Gemfile
  • remove 1.8 monkey patches that aren't valid anymore
  • fix activemodel tests
  • don't warn or be verbose
  • only test sqlite3
  • this doesn't exist in the old version of rack we're testing with
  • our old ActiveSupport doesn't support passing procs to
    assert_difference
  • Raise NameError instead of ArgumentError in
    ActiveSupport::Dependencies
  • work around ruby 2.0 respond_to? changes
  • fix xml tests
  • more respond_to fixes
  • restore AR 3.0 session store
  • restore old notifier when we're done here
  • skip the remaining broken tests we don't care about

File Changes

Patch Links:


Reply to this email directly or view it on GitHubhttps://github.com//pull/58
.

Engineer @ GitHub
http://github.com/rsanheim

Charlie Somerville added 3 commits April 12, 2014 11:49
…oses rails#2508

Change CollectionProxy#method_missing to use scoped.public_send, to
avoid a problem described in issue rails#2508 when trying to use class
methods with names like "open", that clash with private kernel methods.
Also changed the dynamic matcher instantiator to send straight to
scoped, to avoid another roundtrip to method_missing.
@haileys
Copy link
Author

haileys commented Apr 14, 2014

@rsanheim I've updated my benchmark with numbers for Foo.find and Foo.find_by_x. Looks like there's small regressions all the way through to 4.1 (4.1 is still slower than 3.0 in this benchmark).

I'm keen to get some numbers in production though.

rafaelfranca and others added 5 commits April 14, 2014 13:27
This will make possible to do a frameworkless initialization since the
the default middleware stack is self contained.
This will allow the new mysql 2.9.0 to be used, fixing our test issues.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants