{"action":"created","issue":{"url":"https://api.github.com/repos/emberjs/ember.js/issues/17166","repository_url":"https://api.github.com/repos/emberjs/ember.js","labels_url":"https://api.github.com/repos/emberjs/ember.js/issues/17166/labels{/name}","comments_url":"https://api.github.com/repos/emberjs/ember.js/issues/17166/comments","events_url":"https://api.github.com/repos/emberjs/ember.js/issues/17166/events","html_url":"https://github.com/emberjs/ember.js/pull/17166","id":376079189,"node_id":"MDExOlB1bGxSZXF1ZXN0MjI3Mzc4Mjgy","number":17166,"title":"get() / set() perf optimizations","user":{"login":"kanongil","id":753512,"node_id":"MDQ6VXNlcjc1MzUxMg==","avatar_url":"https://avatars0.githubusercontent.com/u/753512?v=4","gravatar_id":"","url":"https://api.github.com/users/kanongil","html_url":"https://github.com/kanongil","followers_url":"https://api.github.com/users/kanongil/followers","following_url":"https://api.github.com/users/kanongil/following{/other_user}","gists_url":"https://api.github.com/users/kanongil/gists{/gist_id}","starred_url":"https://api.github.com/users/kanongil/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kanongil/subscriptions","organizations_url":"https://api.github.com/users/kanongil/orgs","repos_url":"https://api.github.com/users/kanongil/repos","events_url":"https://api.github.com/users/kanongil/events{/privacy}","received_events_url":"https://api.github.com/users/kanongil/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":3,"created_at":"2018-10-31T17:31:26Z","updated_at":"2018-11-01T01:17:35Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/emberjs/ember.js/pulls/17166","html_url":"https://github.com/emberjs/ember.js/pull/17166","diff_url":"https://github.com/emberjs/ember.js/pull/17166.diff","patch_url":"https://github.com/emberjs/ember.js/pull/17166.patch"},"body":"I noticed that the ember-performance Chrome scores of `get()` and `set()` dropped dramatically when `ember-metal-es5-getters` was enabled, so I had a look at it.\r\n\r\nI have managed to mostly bring it back for `get()`, and improve it for `set()` using the included patches. Both are roughly 2x the canary performance. Additionally, it seems to have improved the `run()` benchmark as well.\r\n\r\nAll the patches should work individually, in case you only think some of them are suitable.\r\n\r\n**Chrome**\r\n```\r\nUser Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.20 Safari/537.36\r\n\r\n.------------------------------------------------------------------------.\r\n|                   Ember Performance Suite - Results                    |\r\n|------------------------------------------------------------------------|\r\n|         Name         |       Speed        | Error  | Samples |  Mean   |\r\n|----------------------|--------------------|--------|---------|---------|\r\n|  -- Ember 3.0.0 --   |                    |        |         |         |\r\n| Ember.get            | 1,626,872.70 / sec | ∓1.08% | 64      | 0.00 ms |\r\n| Ember.run            | 670,554.44 / sec   | ∓2.42% | 65      | 0.00 ms |\r\n| Ember.set            | 606,311.51 / sec   | ∓1.12% | 64      | 0.00 ms |\r\n|  -- Ember 3.4.5 --   |                    |        |         |         |\r\n| Ember.get            | 770,484.17 / sec   | ∓1.65% | 61      | 0.00 ms |\r\n| Ember.run            | 710,395.41 / sec   | ∓6.42% | 58      | 0.00 ms |\r\n| Ember.set            | 408,123.26 / sec   | ∓0.47% | 65      | 0.00 ms |\r\n|  -- Ember canary --  |                    |        |         |         |\r\n| Ember.get            | 858,315.30 / sec   | ∓0.96% | 61      | 0.00 ms |\r\n| Ember.run            | 739,482.59 / sec   | ∓0.34% | 66      | 0.00 ms |\r\n| Ember.set            | 453,404.65 / sec   | ∓0.61% | 65      | 0.00 ms |\r\n|  -- Ember dev --     |                    |        |         |         |\r\n| Ember.get            | 1,487,276.86 / sec | ∓1.04% | 63      | 0.00 ms |\r\n| Ember.run            | 818,811.25 / sec   | ∓0.53% | 66      | 0.00 ms |\r\n| Ember.set            | 996,207.06 / sec   | ∓1.33% | 61      | 0.00 ms |\r\n'------------------------------------------------------------------------'\r\n```\r\n\r\n**Safari**\r\n```\r\nUser Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0.1 Safari/605.1.15\r\n\r\n.------------------------------------------------------------------------.\r\n|                   Ember Performance Suite - Results                    |\r\n|------------------------------------------------------------------------|\r\n|         Name         |       Speed        | Error  | Samples |  Mean   |\r\n|----------------------|--------------------|--------|---------|---------|\r\n|  -- Ember 3.0.0 --   |                    |        |         |         |\r\n| Ember.get            | 1,024,541.17 / sec | ∓0.93% | 62      | 0.00 ms |\r\n| Ember.run            | 216,263.15 / sec   | ∓3.47% | 37      | 0.00 ms |\r\n| Ember.set            | 711,296.65 / sec   | ∓0.99% | 64      | 0.00 ms |\r\n|  -- Ember 3.4.5 --   |                    |        |         |         |\r\n| Ember.get            | 660,504.61 / sec   | ∓0.83% | 62      | 0.00 ms |\r\n| Ember.run            | 227,034.91 / sec   | ∓3.44% | 36      | 0.00 ms |\r\n| Ember.set            | 393,704.49 / sec   | ∓0.93% | 63      | 0.00 ms |\r\n|  -- Ember canary --  |                    |        |         |         |\r\n| Ember.get            | 888,268.20 / sec   | ∓0.96% | 61      | 0.00 ms |\r\n| Ember.run            | 236,605.91 / sec   | ∓3.75% | 36      | 0.00 ms |\r\n| Ember.set            | 490,658.82 / sec   | ∓0.80% | 63      | 0.00 ms |\r\n|  -- Ember dev --     |                    |        |         |         |\r\n| Ember.get            | 952,592.90 / sec   | ∓0.96% | 63      | 0.00 ms |\r\n| Ember.run            | 256,341.28 / sec   | ∓3.60% | 37      | 0.00 ms |\r\n| Ember.set            | 690,086.43 / sec   | ∓1.09% | 62      | 0.00 ms |\r\n'------------------------------------------------------------------------'\r\n```"},"comment":{"url":"https://api.github.com/repos/emberjs/ember.js/issues/comments/434899127","html_url":"https://github.com/emberjs/ember.js/pull/17166#issuecomment-434899127","issue_url":"https://api.github.com/repos/emberjs/ember.js/issues/17166","id":434899127,"node_id":"MDEyOklzc3VlQ29tbWVudDQzNDg5OTEyNw==","user":{"login":"rwjblue","id":12637,"node_id":"MDQ6VXNlcjEyNjM3","avatar_url":"https://avatars0.githubusercontent.com/u/12637?v=4","gravatar_id":"","url":"https://api.github.com/users/rwjblue","html_url":"https://github.com/rwjblue","followers_url":"https://api.github.com/users/rwjblue/followers","following_url":"https://api.github.com/users/rwjblue/following{/other_user}","gists_url":"https://api.github.com/users/rwjblue/gists{/gist_id}","starred_url":"https://api.github.com/users/rwjblue/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rwjblue/subscriptions","organizations_url":"https://api.github.com/users/rwjblue/orgs","repos_url":"https://api.github.com/users/rwjblue/repos","events_url":"https://api.github.com/users/rwjblue/events{/privacy}","received_events_url":"https://api.github.com/users/rwjblue/received_events","type":"User","site_admin":false},"created_at":"2018-11-01T01:17:35Z","updated_at":"2018-11-01T01:17:35Z","author_association":"MEMBER","body":"Looks like some linting failures, mind taking a look?"}}
{"actor":{"display_login":"rwjblue"}}