Ruby on rails 内存泄漏-ActiveSupport-依赖项

Ruby on rails 内存泄漏-ActiveSupport-依赖项,ruby-on-rails,memory-leaks,ruby-on-rails-5,Ruby On Rails,Memory Leaks,Ruby On Rails 5,我最近发现我的应用程序内存泄漏 获取正常堆转储并进行分析显示: object count (670282) ============================== 95930 activesupport-5.0.2/lib/active_support/dependencies.rb:293 92143 activerecord-5.0.2/lib/active_record/connection_adapters/postgresql/database_statements.

我最近发现我的应用程序内存泄漏

获取正常堆转储并进行分析显示:

object count (670282)
==============================
  95930  activesupport-5.0.2/lib/active_support/dependencies.rb:293
  92143  activerecord-5.0.2/lib/active_record/connection_adapters/postgresql/database_statements.rb:111
  49151  activesupport-5.0.2/lib/active_support/core_ext/marshal.rb:4
  13439  activerecord-5.0.2/lib/active_record/attribute.rb:5
  13423  activerecord-5.0.2/lib/active_record/result.rb:123
  13422

High Ref Counts
==============================

  283240  activerecord-5.0.2/lib/active_record/result.rb:123
  201375  activesupport-5.0.2/lib/active_support/dependencies.rb:293
  67110  activerecord-5.0.2/lib/active_record/attribute_set/builder.rb:19
请注意
活动\u支持的最高对象计数及其高引用计数。其所指的方法是:

def require(file)
  result = false
  load_dependency(file) { result = super }
  result
end 

任何人都知道这个方法在做什么,为什么要保留这么多内存

该行(特别是对
super
的调用)接收在执行每个
require
过程中创建的所有对象的属性

之所以指向它,是因为它是执行的最后一行Ruby代码,但它所负责的对象与活动支持完全无关:它们是解析正在加载的所有其他Ruby脚本以及初始化任何C扩展的结果。

这一行(特别是调用
super
)接收在执行每个
要求
的过程中创建的所有对象的属性

之所以指出它,是因为它是执行的最后一行Ruby代码,但它所负责的对象与活动支持完全无关:它们是解析所有正在加载的其他Ruby脚本以及初始化任何C扩展的结果