instance method attribute_method_patterns_cache

Ruby on Rails 7.2.3

Since v7.1.6 Private

Available in: v7.1.6 v7.2.3 v8.0.4 v8.1.2

Signature

attribute_method_patterns_cache()

The methods method_missing and respond_to? of this module are invoked often in a typical rails, both of which invoke the method matched_attribute_method. The latter method iterates through an array doing regular expression matches, which results in a lot of object creations. Most of the time it returns a nil match. As the match result is always the same given a method_name, this cache is used to alleviate the GC, which ultimately also speeds up the app significantly (in our case our test suite finishes 10% faster with this cache).

Source
# File activemodel/lib/active_model/attribute_methods.rb, line 417
        def attribute_method_patterns_cache
          @attribute_method_patterns_cache ||= Concurrent::Map.new(initial_capacity: 4)
        end

Defined in activemodel/lib/active_model/attribute_methods.rb line 417 · View on GitHub · Improve this page · Find usages on GitHub

Defined in ActiveModel::AttributeMethods::ClassMethods

Type at least 2 characters to search.

↑↓ navigate · open · esc close