The methods method_missing and respond_to? of this module are invoked often in a typical rails, both of which invoke the method match_attribute_method?. The latter method iterates through an array doing regular expression matches, which results in a lot of object creations. Most of the times 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).
# File activemodel/lib/active_model/attribute_methods.rb, line 348 def attribute_method_matchers_cache #:nodoc: @attribute_method_matchers_cache ||= ThreadSafe::Cache.new(:initial_capacity => 4) end