Fix a performance regression due to logging #411

Merged
merged 1 commit into from Feb 18, 2017

Conversation

Projects
None yet
3 participants
@michaelherold
Contributor

michaelherold commented Feb 18, 2017

By switching to #respond_to? we make the lookup of method collisions
a lot faster while retaining the ability to report on them.

Closes #410

Fix a performance regression due to logging
By switching to `#respond_to?` we make the lookup of method collisions
a lot faster while retaining the ability to report on them.

Closes #410

@michaelherold michaelherold self-assigned this Feb 18, 2017

@michaelherold michaelherold referenced this pull request in omniauth/omniauth Feb 18, 2017

Closed

Performance Issue with version 1.5.0 #886

@dblock dblock merged commit cc359a2 into intridea:master Feb 18, 2017

1 check passed

continuous-integration/travis-ci/pr The Travis CI build passed
Details
@dblock

This comment has been minimized.

Show comment
Hide comment
@dblock

dblock Feb 18, 2017

Contributor

Thanks @michaelherold, nice hunting.

Contributor

dblock commented Feb 18, 2017

Thanks @michaelherold, nice hunting.

@chrisbarber86

This comment has been minimized.

Show comment
Hide comment
@chrisbarber86

chrisbarber86 Feb 21, 2017

Would it be possible to get a release with this fix in? (v3.5.4 maybe?)

Would it be possible to get a release with this fix in? (v3.5.4 maybe?)

@michaelherold michaelherold deleted the michaelherold:perf-regression branch Feb 22, 2017

@michaelherold

This comment has been minimized.

Show comment
Hide comment
@michaelherold

michaelherold Feb 22, 2017

Contributor

Sure, I'll get a new release out in the morning (UTC-6). Since we merged in a new feature, it will be 3.6.0 I think.

Contributor

michaelherold commented Feb 22, 2017

Sure, I'll get a new release out in the morning (UTC-6). Since we merged in a new feature, it will be 3.6.0 I think.

@michaelherold

This comment has been minimized.

Show comment
Hide comment
@michaelherold

michaelherold Feb 22, 2017

Contributor

I decided to go with 3.5.4 since the mixin was a minor feature. It's out now! Thanks for the reminder, @chrisbarber86.

Contributor

michaelherold commented Feb 22, 2017

I decided to go with 3.5.4 since the mixin was a minor feature. It's out now! Thanks for the reminder, @chrisbarber86.

@chrisbarber86

This comment has been minimized.

Show comment
Hide comment
@chrisbarber86

chrisbarber86 Feb 22, 2017

Awesome, thanks @michaelherold - appreciate it!

Awesome, thanks @michaelherold - appreciate it!

jsonn pushed a commit to jsonn/pkgsrc that referenced this pull request Mar 20, 2017

taca
Update ruby-hashie to 3.5.5.
# Change Log

## [3.5.5] - 2017-02-24

[3.5.5]: intridea/hashie@v3.5.4...v3.5.5

### Added

* [#326](intridea/hashie#326): Added `Hashie::Extensions::Mash::KeepOriginalKeys` to give Mashes the ability to keep the original structure given to it - [@michaelherold](https://github.com/michaelherold).

### Fixed

* [#415](intridea/hashie#415): Fixed Mash logging keys multiple times which lead to a bad user experience or, in some cases, errors - [@michaelherold](https://github.com/michaelherold).

## [3.5.4] - 2017-02-22

[3.5.4]: intridea/hashie@v3.5.3...v3.5.4

### Added

* [#412](intridea/hashie#412): Added a Hashie::Extensions::Mash::SymbolizeKeys extension that overrides the default stringification behavior for keys - [@michaelherold](https://github.com/michaelherold).

### Fixed

* [#409](intridea/hashie#409): Fixed Railtie detection for projects where Rails is defined but Railties are not availble - [@CallumD](https://github.com/callumd).
* [#411](intridea/hashie#411): Fixed a performance regression from 3.4.3 that caused a 10x slowdown in OmniAuth - [@michaelherold](https://github.com/michaelherold).

## [3.5.3] - 2017-02-11

[3.5.3]: intridea/hashie@v3.5.2...v3.5.3

### Fixed

* [#402](intridea/hashie#402): Use a Railtie to set Hashie.logger on rails boot - [@matthewrudy](https://github.com/matthewrudy).
* [#406](intridea/hashie#406): Ensure that subclasses that disable warnings propagate that setting to grandchild classes - [@michaelherold](https://github.com/michaelherold).
* Your contribution here.

## [3.5.2] - 2017-02-10

[3.5.2]: intridea/hashie@v3.5.1...v3.5.2

### Added

* [#395](intridea/hashie#395): Add the ability to disable warnings in Mash subclasses - [@michaelherold](https://github.com/michaelherold).
* [#400](intridea/hashie#400): Fix Hashie.logger load and set the Hashie logger to the Rails logger in a Rails environment - [@michaelherold](https://github.com/michaelherold).

### Fixed

* [#396](intridea/hashie#396): Fix for specs in #381: Incorrect use of shared context meant example was not being run - [@biinari](https://github.com/biinari).
* [#399](intridea/hashie#399): Fix passing Pathname object to Hashie::Mesh.load() - [@albb0920](https://github.com/albb0920).

### Miscellanous

* [#397](intridea/hashie#397): Add the integration specs harness into the main test tasks - [@michaelherold](https://github.com/michaelherold).

## [3.5.1] - 2017-01-31

* [#392](intridea/hashie#392): Fix for #391: Require all dependencies of Hashie::Mash - [@dblock](https://github.com/dblock).

[3.5.1]: intridea/hashie@v3.5.0...v3.5.1

## [3.5.0] - 2017-01-31

* [#386](intridea/hashie#386): Fix for #385: Make `deep_merge` always `deep_dup` nested hashes before merging them in so that there are no shared references between the two hashes being merged. - [@mltsy](https://github.com/mltsy).
* [#389](intridea/hashie#389): Support Ruby 2.4.0 - [@camelmasa](https://github.com/camelmasa).

[3.5.0]: intridea/hashie@v3.4.6...v3.5.0

### Added

* [#381](intridea/hashie#381): Add a logging layer that lets us report potential issues to our users. As the first logged issue, report when a `Hashie::Mash` is attempting to overwrite a built-in method, since that is one of our number one questions - [@michaelherold](https://github.com/michaelherold).

### Changed

* [#384](intridea/hashie#384): Updated to CodeClimate 1.x - [@boffbowsh](https://github.com/boffbowsh).

### Fixed

* [#369](intridea/hashie#369): If a translation for a property exists when using IndifferentAccess and IgnoreUndeclared, use the translation to find the property - [@whitethunder](https://github.com/whitethunder).
* [#376](intridea/hashie#376): Leave string index unchanged if it can't be converted to integer for Array#dig - [@sazor](https://github.com/sazor).
* [#377](intridea/hashie#377): Dont use Rubygems to check ruby version - [@sazor](https://github.com/sazor).
* [#378](intridea/hashie#378): Deep find all searches inside all nested hashes - [@sazor](https://github.com/sazor).
* [#380](intridea/hashie#380): Evaluate procs default values of Dash in object initialization - [@sazor](https://github.com/sazor).

### Miscellanous

* [#387](intridea/hashie#387): Fix builds failing due to Rake 11 having a breaking change - [@michaelherold](https://github.com/michaelherold).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment