{"action":"created","issue":{"url":"https://api.github.com/repos/rails/rails/issues/33758","repository_url":"https://api.github.com/repos/rails/rails","labels_url":"https://api.github.com/repos/rails/rails/issues/33758/labels{/name}","comments_url":"https://api.github.com/repos/rails/rails/issues/33758/comments","events_url":"https://api.github.com/repos/rails/rails/issues/33758/events","html_url":"https://github.com/rails/rails/pull/33758","id":355616618,"node_id":"MDExOlB1bGxSZXF1ZXN0MjEyMTAzNzIw","number":33758,"title":"Faster permitted_scalar_filter","user":{"login":"schneems","id":59744,"node_id":"MDQ6VXNlcjU5NzQ0","avatar_url":"https://avatars2.githubusercontent.com/u/59744?v=4","gravatar_id":"","url":"https://api.github.com/users/schneems","html_url":"https://github.com/schneems","followers_url":"https://api.github.com/users/schneems/followers","following_url":"https://api.github.com/users/schneems/following{/other_user}","gists_url":"https://api.github.com/users/schneems/gists{/gist_id}","starred_url":"https://api.github.com/users/schneems/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/schneems/subscriptions","organizations_url":"https://api.github.com/users/schneems/orgs","repos_url":"https://api.github.com/users/schneems/repos","events_url":"https://api.github.com/users/schneems/events{/privacy}","received_events_url":"https://api.github.com/users/schneems/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":3,"created_at":"2018-08-30T14:40:05Z","updated_at":"2018-08-30T17:40:08Z","closed_at":null,"author_association":"MEMBER","pull_request":{"url":"https://api.github.com/repos/rails/rails/pulls/33758","html_url":"https://github.com/rails/rails/pull/33758","diff_url":"https://github.com/rails/rails/pull/33758.diff","patch_url":"https://github.com/rails/rails/pull/33758.patch"},"body":"When running with code triage and derailed benchmarks and focusing on this file:\r\n\r\nBefore\r\n\r\n     16199  /Users/rschneeman/Documents/projects/rails/actionpack/lib/action_controller/metal/strong_parameters.r\r\n\r\nAfter\r\n\r\n      2280  /Users/rschneeman/Documents/projects/rails/actionpack/lib/action_controller/metal/strong_parameters.rb\r\n"},"comment":{"url":"https://api.github.com/repos/rails/rails/issues/comments/417405357","html_url":"https://github.com/rails/rails/pull/33758#issuecomment-417405357","issue_url":"https://api.github.com/repos/rails/rails/issues/33758","id":417405357,"node_id":"MDEyOklzc3VlQ29tbWVudDQxNzQwNTM1Nw==","user":{"login":"schneems","id":59744,"node_id":"MDQ6VXNlcjU5NzQ0","avatar_url":"https://avatars2.githubusercontent.com/u/59744?v=4","gravatar_id":"","url":"https://api.github.com/users/schneems","html_url":"https://github.com/schneems","followers_url":"https://api.github.com/users/schneems/followers","following_url":"https://api.github.com/users/schneems/following{/other_user}","gists_url":"https://api.github.com/users/schneems/gists{/gist_id}","starred_url":"https://api.github.com/users/schneems/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/schneems/subscriptions","organizations_url":"https://api.github.com/users/schneems/orgs","repos_url":"https://api.github.com/users/schneems/repos","events_url":"https://api.github.com/users/schneems/events{/privacy}","received_events_url":"https://api.github.com/users/schneems/received_events","type":"User","site_admin":false},"created_at":"2018-08-30T17:40:08Z","updated_at":"2018-08-30T17:40:08Z","author_association":"MEMBER","body":"The memory savings are 0.013919 mb and on codetriage it takes about 0.95 mb of memory for a request. So, in this case, it's a 1.4 % reduction in memory per request. I couldn't get that to show up on a benchmark by itself in any kind of statistically significant way via benchmark.ips or benchmark.bmbm. \r\n\r\nThis location was bad enough to show up on derailed's top offenders for memory allocation before the change.\r\n\r\nBefore\r\n\r\n```\r\nallocated memory by file\r\n-----------------------------------\r\n    127779  /Users/rschneeman/Documents/projects/rails/activesupport/lib/active_support/core_ext/string/output_safety.rb\r\n     97333  /Users/rschneeman/.gem/ruby/2.5.1/gems/dalli-2.7.8/lib/dalli/server.rb\r\n     49448  /Users/rschneeman/Documents/projects/codetriage/app/views/layouts/_app.html.slim\r\n     49328  /Users/rschneeman/Documents/projects/codetriage/app/views/layouts/application.html.slim\r\n     36044  /Users/rschneeman/Documents/projects/rails/activemodel/lib/active_model/type/helpers/time_value.rb\r\n     34739  /Users/rschneeman/.gem/ruby/2.5.1/gems/dalli-2.7.8/lib/active_support/cache/dalli_store.rb\r\n     34447  /Users/rschneeman/Documents/projects/rails/activesupport/lib/active_support/core_ext/marshal.rb\r\n     28264  <internal:prelude>\r\n     25592  /Users/rschneeman/.gem/ruby/2.5.1/gems/dalli-2.7.8/lib/dalli/socket.rb\r\n     25096  /Users/rschneeman/Documents/projects/codetriage/app/views/pages/_repos_with_pagination.html.slim\r\n     18000  /Users/rschneeman/Documents/projects/rails/activemodel/lib/active_model/attribute_set/builder.rb\r\n     17056  /Users/rschneeman/Documents/projects/rails/actionview/lib/action_view/digestor.rb\r\n     16199  /Users/rschneeman/Documents/projects/rails/actionpack/lib/action_controller/metal/strong_parameters.rb # <============================================\r\n     15888  /Users/rschneeman/Documents/projects/rails/activerecord/lib/active_record/result.rb\r\n     15080  /Users/rschneeman/.gem/ruby/2.5.1/gems/rack-mini-profiler-1.0.0/lib/patches/db/pg.rb\r\n     13984  /Users/rschneeman/Documents/projects/rails/actionpack/lib/abstract_controller/caching/fragments.rb\r\n     11200  /Users/rschneeman/Documents/projects/rails/actionview/lib/action_view/helpers/cache_helper.rb\r\n     10046  /Users/rschneeman/.gem/ruby/2.5.1/gems/rack-mini-profiler-1.0.0/lib/mini_profiler/storage/file_store.rb\r\n      9289  /Users/rschneeman/Documents/projects/rails/activesupport/lib/active_support/tagged_logging.rb\r\n      8648  /Users/rschneeman/Documents/projects/rails/actionview/lib/action_view/lookup_context.rb\r\n      8400  /Users/rschneeman/Documents/projects/rails/actionview/lib/action_view/renderer/partial_renderer.rb\r\n      8304  /Users/rschneeman/Documents/projects/rails/activemodel/lib/active_model/attribute.rb\r\n      7751  /Users/rschneeman/Documents/projects/rails/actionview/lib/action_view/log_subscriber.rb\r\n      7348  /Users/rschneeman/.rubies/ruby-2.5.1/lib/ruby/2.5.0/logger.rb\r\n      7216  /Users/rschneeman/Documents/projects/rails/activesupport/lib/active_support/core_ext/object/to_query.rb\r\n      7096  /Users/rschneeman/Documents/projects/rails/actionview/lib/action_view/renderer/partial_renderer/collection_caching.rb\r\n      7024  /Users/rschneeman/.gem/ruby/2.5.1/gems/warden-1.2.6/lib/warden/proxy.rb\r\n      6512  /Users/rschneeman/Documents/projects/rails/actionpack/lib/action_dispatch/routing/route_set.rb\r\n      6354  /Users/rschneeman/.gem/ruby/2.5.1/gems/dalli-2.7.8/lib/dalli/client.rb\r\n      6038  /Users/rschneeman/Documents/projects/rails/actionview/lib/action_view/helpers/tag_helper.rb\r\n      6000  /Users/rschneeman/Documents/projects/rails/activerecord/lib/active_record/integration.rb\r\n      5680  /Users/rschneeman/Documents/projects/rails/activesupport/lib/active_support/callbacks.rb\r\n      5600  /Users/rschneeman/Documents/projects/rails/activerecord/lib/active_record/persistence.rb\r\n      4916  /Users/rschneeman/.gem/ruby/2.5.1/gems/rack-2.0.5/lib/rack/utils.rb\r\n      4896  /Users/rschneeman/Documents/projects/rails/actionpack/lib/action_dispatch/journey/formatter.rb\r\n      4760  /Users/rschneeman/Documents/projects/rails/actionpack/lib/action_dispatch/http/response.rb\r\n      4544  /Users/rschneeman/Documents/projects/rails/activesupport/lib/active_support/core_ext/hash/keys.rb\r\n      4536  /Users/rschneeman/Documents/projects/rails/activesupport/lib/active_support/core_ext/array/conversions.rb\r\n      4504  /Users/rschneeman/Documents/projects/rails/activesupport/lib/active_support/hash_with_indifferent_access.rb\r\n      4448  /Users/rschneeman/.gem/ruby/2.5.1/gems/hashie-3.5.7/lib/hashie/mash.rb\r\n      4448  /Users/rschneeman/Documents/projects/rails/activesupport/lib/active_support/notifications/instrumenter.rb\r\n      4440  /Users/rschneeman/Documents/projects/rails/activerecord/lib/active_record/attribute_methods.rb\r\n      4360  /Users/rschneeman/.gem/ruby/2.5.1/gems/will_paginate-3.1.0/lib/will_paginate/active_record.rb\r\n      4240  /Users/rschneeman/Documents/projects/rails/actionpack/lib/abstract_controller/helpers.rb\r\n      4160  /Users/rschneeman/Documents/projects/rails/actionpack/lib/abstract_controller/caching.rb\r\n      4000  /Users/rschneeman/Documents/projects/rails/activerecord/lib/active_record/attribute_methods/time_zone_conversion.rb\r\n      3968  /Users/rschneeman/Documents/projects/rails/activesupport/lib/active_support/subscriber.rb\r\n      3888  /Users/rschneeman/.gem/ruby/2.5.1/gems/will_paginate-3.1.0/lib/will_paginate/view_helpers/link_renderer.rb\r\n      3648  /Users/rschneeman/Documents/projects/rails/activerecord/lib/active_record/relation.rb\r\n      3600  /Users/rschneeman/Documents/projects/rails/activesupport/lib/active_support/core_ext/date_and_time/zones.rb\r\n```\r\n\r\nAfter \r\n\r\n```\r\nallocated memory by file\r\n-----------------------------------\r\n    127690  /Users/rschneeman/Documents/projects/rails/activesupport/lib/active_support/core_ext/string/output_safety.rb\r\n     96197  /Users/rschneeman/.gem/ruby/2.5.1/gems/dalli-2.7.8/lib/dalli/server.rb\r\n     49448  /Users/rschneeman/Documents/projects/codetriage/app/views/layouts/_app.html.slim\r\n     49328  /Users/rschneeman/Documents/projects/codetriage/app/views/layouts/application.html.slim\r\n     36044  /Users/rschneeman/Documents/projects/rails/activemodel/lib/active_model/type/helpers/time_value.rb\r\n     34739  /Users/rschneeman/.gem/ruby/2.5.1/gems/dalli-2.7.8/lib/active_support/cache/dalli_store.rb\r\n     34447  /Users/rschneeman/Documents/projects/rails/activesupport/lib/active_support/core_ext/marshal.rb\r\n     28029  <internal:prelude>\r\n     25640  /Users/rschneeman/.gem/ruby/2.5.1/gems/dalli-2.7.8/lib/dalli/socket.rb\r\n     25096  /Users/rschneeman/Documents/projects/codetriage/app/views/pages/_repos_with_pagination.html.slim\r\n     18000  /Users/rschneeman/Documents/projects/rails/activemodel/lib/active_model/attribute_set/builder.rb\r\n     17056  /Users/rschneeman/Documents/projects/rails/actionview/lib/action_view/digestor.rb\r\n     15888  /Users/rschneeman/Documents/projects/rails/activerecord/lib/active_record/result.rb\r\n     15080  /Users/rschneeman/.gem/ruby/2.5.1/gems/rack-mini-profiler-1.0.0/lib/patches/db/pg.rb\r\n     13984  /Users/rschneeman/Documents/projects/rails/actionpack/lib/abstract_controller/caching/fragments.rb\r\n     11200  /Users/rschneeman/Documents/projects/rails/actionview/lib/action_view/helpers/cache_helper.rb\r\n     10046  /Users/rschneeman/.gem/ruby/2.5.1/gems/rack-mini-profiler-1.0.0/lib/mini_profiler/storage/file_store.rb\r\n      9289  /Users/rschneeman/Documents/projects/rails/activesupport/lib/active_support/tagged_logging.rb\r\n      8648  /Users/rschneeman/Documents/projects/rails/actionview/lib/action_view/lookup_context.rb\r\n      8400  /Users/rschneeman/Documents/projects/rails/actionview/lib/action_view/renderer/partial_renderer.rb\r\n      8304  /Users/rschneeman/Documents/projects/rails/activemodel/lib/active_model/attribute.rb\r\n      7751  /Users/rschneeman/Documents/projects/rails/actionview/lib/action_view/log_subscriber.rb\r\n      7348  /Users/rschneeman/.rubies/ruby-2.5.1/lib/ruby/2.5.0/logger.rb\r\n      7216  /Users/rschneeman/Documents/projects/rails/activesupport/lib/active_support/core_ext/object/to_query.rb\r\n      7096  /Users/rschneeman/Documents/projects/rails/actionview/lib/action_view/renderer/partial_renderer/collection_caching.rb\r\n      7024  /Users/rschneeman/.gem/ruby/2.5.1/gems/warden-1.2.6/lib/warden/proxy.rb\r\n      6512  /Users/rschneeman/Documents/projects/rails/actionpack/lib/action_dispatch/routing/route_set.rb\r\n      6354  /Users/rschneeman/.gem/ruby/2.5.1/gems/dalli-2.7.8/lib/dalli/client.rb\r\n      6038  /Users/rschneeman/Documents/projects/rails/actionview/lib/action_view/helpers/tag_helper.rb\r\n      6000  /Users/rschneeman/Documents/projects/rails/activerecord/lib/active_record/integration.rb\r\n      5680  /Users/rschneeman/Documents/projects/rails/activesupport/lib/active_support/callbacks.rb\r\n      5600  /Users/rschneeman/Documents/projects/rails/activerecord/lib/active_record/persistence.rb\r\n      4916  /Users/rschneeman/.gem/ruby/2.5.1/gems/rack-2.0.5/lib/rack/utils.rb\r\n      4896  /Users/rschneeman/Documents/projects/rails/actionpack/lib/action_dispatch/journey/formatter.rb\r\n      4760  /Users/rschneeman/Documents/projects/rails/actionpack/lib/action_dispatch/http/response.rb\r\n      4544  /Users/rschneeman/Documents/projects/rails/activesupport/lib/active_support/core_ext/hash/keys.rb\r\n      4536  /Users/rschneeman/Documents/projects/rails/activesupport/lib/active_support/core_ext/array/conversions.rb\r\n      4504  /Users/rschneeman/Documents/projects/rails/activesupport/lib/active_support/hash_with_indifferent_access.rb\r\n      4448  /Users/rschneeman/.gem/ruby/2.5.1/gems/hashie-3.5.7/lib/hashie/mash.rb\r\n      4448  /Users/rschneeman/Documents/projects/rails/activesupport/lib/active_support/notifications/instrumenter.rb\r\n      4440  /Users/rschneeman/Documents/projects/rails/activerecord/lib/active_record/attribute_methods.rb\r\n      4360  /Users/rschneeman/.gem/ruby/2.5.1/gems/will_paginate-3.1.0/lib/will_paginate/active_record.rb\r\n      4240  /Users/rschneeman/Documents/projects/rails/actionpack/lib/abstract_controller/helpers.rb\r\n      4160  /Users/rschneeman/Documents/projects/rails/actionpack/lib/abstract_controller/caching.rb\r\n      4000  /Users/rschneeman/Documents/projects/rails/activerecord/lib/active_record/attribute_methods/time_zone_conversion.rb\r\n      3968  /Users/rschneeman/Documents/projects/rails/activesupport/lib/active_support/subscriber.rb\r\n      3888  /Users/rschneeman/.gem/ruby/2.5.1/gems/will_paginate-3.1.0/lib/will_paginate/view_helpers/link_renderer.rb\r\n      3648  /Users/rschneeman/Documents/projects/rails/activerecord/lib/active_record/relation.rb\r\n      3600  /Users/rschneeman/Documents/projects/rails/activesupport/lib/active_support/core_ext/date_and_time/zones.rb\r\n      3592  /Users/rschneeman/Documents/projects/rails/activesupport/lib/active_support/duration.rb\r\n```\r\n\r\n\r\n\r\nMeasured with\r\n\r\n```\r\n$ RAILS_SERVE_STATIC_FILES=1 RAILS_LOG_TO_STDOUT=1 DEVISE_SECRET_KEY=foo bundle exec derailed exec perf:objects\r\n```\r\n\r\nOn CodeTriage.\r\n"}}
{"actor":{"display_login":"schneems"}}